Массивы
Большинство программ работает не с отдельными переменными, а с набором переменных. Например, программа может обрабатывать информацию об учащихся класса, считывая список учащихся с клавиатуры или из файла, при этом изменение количества учащихся в классе не должно требовать модификации исходного кода программы.
Раньше мы сталкивались с задачей обработки элементов последовательности, например, вычисляя наибольший элемент последовательности. Но при этом мы не сохраняли всю последовательность в памяти компьютера, однако, во многих задачах нужно именно сохранять всю последовательность, например, если бы нам требовалось вывести все элементы последовательности в возрастающем порядке (“отсортировать последовательность”).
Для хранения таких данных можно использовать структуру данных, называемую в Питоне список (в большинстве же языков программирования используется другой термин “массив”). Список представляет собой последовательность элементов, пронумерованных от 0, как символы в строке. Список можно задать перечислением элементов списка в квадратных скобках, например, список можно задать так:
Primes = [2, 3, 5, 7, 11, 13]
Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
В списке Primes — 6 элементов, а именно, Primes[0] == 2, Primes[1] == 3, Primes[2] == 5, Primes[3] == 7, Primes[4] == 11, Primes[5] == 13. Список Rainbow состоит из 7 элементов, каждый из которых является строкой.
Также как и символы строки, элементы списка можно индексировать отрицательными числами с конца, например, Primes[-1] == 13, Primes[-6] == 2.
Длину списка, то есть количество элементов в нем, можно узнать при помощи функции len, например, len(A) == 6.
Рассмотрим несколько способов создания и считывания списков. Прежде всего можно создать пустой список (не содержащий элементов, длины 0), в конец списка можно добавлять элементы при помощи метода append. Например, если программа получает на вход количество элементов в списке n, а потом n элементов списка по одному в отдельной строке, то организовать считывание списка можно так:
A = []
for i in range(int(input()):
A.append(int(input())
В этом примере создается пустой список, далее считывается количество элементов в списке, затем по одному считываются элементы списка и добавляются в его конец.
Для списков целиком определены следующие операции: конкатенация списков (добавление одного списка в конец другого) и повторение списков (умножение списка на число). Например:
A = [1, 2, 3]
B = [4, 5]
C = A + B
D = B * 3
В результате список C будет равен [1, 2, 3, 4, 5], а список D будет равен [4, 5, 4, 5, 4, 5]. Это позволяет по-другому организовать процесс считывания списков: сначала считать размер списка и создать список из нужного числа элементов, затем организовать цикл по переменной i начиная с числа 0 и внутри цикла считывается i-й элемент списка:
A = [0] * int(input())
for i in range(len(A)):
A[i] = int(input())
Вывести элементы списка A можно одной инструкцией print(A), при этом будут выведены квадратные скобки вокруг элементов списка и запятые между элементами списка. Такой вывод неудобен, чаще требуется просто вывести все элементы списка в одну строку или по одному элементу в строке. Приведем два примера, также отличающиеся организацией цикла:
for i in range(len(A)):
print(A[i])
Здесь в цикле меняется индекс элемента i, затем выводится элемент списка с индексом i.
for elem in A:
print(elem, end = ' ')
В этом примере элементы списка выводятся в одну строку, разделенные пробелом, при этом в цикле меняется не индекс элемента списка, а само значение переменной (например, в цикле for elem in [‘red’, ‘green’, ‘blue’] переменная elem будет последовательно принимать значения ‘red’, ‘green’, ‘blue’.
Как ввести массив с клавиатуры?
Как вводить элементы массива с клавиатуры? Задание: Дан массив целых чисел. Найти сумму и произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
l = [1, 4, 0, 3, 2, 7, 3, 1, 0, 34] t, c, k = 1, 0, 0 for i in l: if i == 0: if k == 1: break k = 1 continue if k == 1: t *= i c += i print(t) print(c)
Отслеживать
задан 13 мая 2019 в 18:57
17 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Ввод чисел через пробел:
my_list = [int(el) for el in input().split()]
Первый и второй ноль можно найти через index (проверка на вхождение обоих нулей — count(0)):
first = my_list.index(0) second = my_list.index(0, first + 1)
s = sum(q[first+1:second])
from functools import reduce mul = reduce(lambda x, y: x*y, q[first+1:second])
4. Массивы в Python
В Python нет служебных слов, которые обозначают массив (например, как в Pascal — array), вместо этого для хранения массива используют списки (тип данных list).
Список в Python — это набор элементов, который имеет свой номер (индекс).
План работы с массивом
1. Создать массив. Например, так:
N \(= 10\) #известно количество элементов;
N \(=\) int(input(‘Введи количество элементов’)) #неизвестно количество элементов.
2. Заполнить массив.
3. Обработать элементы массива.
4. Вывести результаты обработки.
Способы заполнения массива
С клавиатуры:

Рис. \(2\). Ввод с клавиатуры
Ввод с помощью генератора случайных чисел:

Рис. \(3\). Ввод с помощью случайных чисел
Ввод с помощью формул:

Рис. \(4\). Ввод с помощью формул
В двумерном массиве всё аналогично, только добавляется ещё один индекс:
A:array[\(1\)..N, \(1\)..M] of integer.
Как ввести массив с клавиатуры в java
Для ввода массива с клавиатуры в Java можно использовать класс Scanner из стандартной библиотеки Java . Например, чтобы ввести массив целых чисел с клавиатуры, можно использовать следующий код:
import java.util.Scanner; public class Main public static void main(String[] args) Scanner scanner = new Scanner(System.in); System.out.print("Введите длину массива: "); int length = scanner.nextInt(); int[] array = new int[length]; System.out.println("Введите элементы массива:"); for (int i = 0; i length; i++) array[i] = scanner.nextInt(); > System.out.println("Массив: " + Arrays.toString(array)); > >
- В этом примере мы создали объект класса Scanner , который позволяет считывать данные из стандартного потока ввода (клавиатуры).
- Затем мы запросили у пользователя длину массива и создали массив нужного размера.
- После этого мы в цикле заполняем массив элементами, вводимыми с клавиатуры, с помощью метода nextInt() объекта Scanner.
- Наконец, мы выводим полученный массив на экран с помощью метода toString() класса Arrays
Для ввода массива других типов данных нужно использовать соответствующие методы класса Scanner , например, nextDouble() для ввода массива вещественных чисел.