1 Способ
Если на момент написания программы известны значения всех элементов списка, то эти значения могут быть записаны в список при его объявлении – указании его имени и перечня значений в квадратных скобках:
V = [20, 61, 2, 37, 4, 55, 36, 7, 18, 39]
Raduga = ['Красный', 'Оранжевый', 'Желтый', 'Зеленый', 'Голубой', 'Синий', 'Фиолетовый']
Значения элементов списка можно также ввести в программу с помощью инструкций присваивания:
a[0] = ...
a[1] = ...
...
Можно использовать множественное присваивание:
a[0], a[1], ... = ...
2 Способ
Ну, и конечно же, самый популярный и известный способ - через цикл for:
Обозначив меняющийся при повторении индекс элемента списка так, как это традиционно делается в программировании, – именем i, можем оформить все в виде цикла for:
for i in range(10):
a[i] = i
или даже короче:
a = [i for i in range(10)]
Конструкция, записанная в квадратных скобках, и является генератором списка.
3 способ
Если нам необходимо принять данные от пользователя, то мы, собственно, будем использовать функцию input
a=[0]*10 #предварительно заводим место под массив, присвоив значения всем элементам 0
for i in range(10):
a[i] = int (input('Введите значение очередного элемента списка '))
Обратите внимание, что нам все равно необходим знать какого размера будет будущий массив. Однако в Python есть выход из ситуации, если вы не знаете заранее сколько элементов вам понадобиться.
Добавлять в имеющийся список новые элементы мы будем с помощью метода append():
values.append(5) #Добавлен новый элемент списка values со значением 5
values.append(а) #Добавлен еще один элемент списка values со значением, равным значению переменной а
Можно также добавлять элементы со значениями, вводимыми с клавиатуры с помощью инструкции input():
values.append(input('Введите значение следующего элемента списка '))
В последнем случае при необходимости можно использовать инструкцию for:
for i in range(…)
el = input('Введите значение следующего элемента списка ')
values.append(el)
Конечно, и здесь надо тоже при необходимости применять функции int() или float(). Ведь по умолчанию любая переменная в Python - строка.
Когда решаются условные задачи учебного назначения, удобно заполнять список случайными целыми числами с помощью функции randint(). Например, заполнение списка L_rand двадцатью случайными числами, которые могут принимать значения 100,101, …, 200, проводится так:
from random import randint
for i in range(20):
L_rand[i] = randint(100, 200)
или с помощью генератора списка:
from random import randint
L_rand = [randint(100, 200) for i in range(20)]
Раз уж мы еще раз применили генератор списка, то давайте поговорим о нем подробнее. Вот примеры генераторов, которые мы использовали:
[i for i in range(n)]
['' for i in range(n)]
[0 for i in range(n)]
[randint(100, 200) for i in range(20)]
Любой генератор (конструкция внутри квадратных скобок – признака списка) в простейшем случае имеет две основные части:
1) «выходное» значение, которое генерируется и записывается в список (в примерах – число i, пустая строка '', число 0, случайное число из заданного интервала). Здесь может быть также указано выражение для расчета – n ** 2 и т. п.);
2) запись, указывающая либо набор значений, для которых рассчитывается выражение в первой части («выходное» значение):
[i for i in range(n)]
[n ** 2 for n in range(10, 21)]
либо число повторений «выходного» значения в списке:
['' for i in range(50)]
[0 for i in range(n)]
[randint(100, 200) for i in range(20)]
В качестве набора значений для расчета «выходного» значения можно использовать не только числа, возвращаемые функцией range(n),но и все символы некоторой строки:
Spisok_simv = [sim for sim in 'ПРИВЕТ!']
или элементы другого списка:
a = [2, -2, 4, -4, 7, 5]
b = [el ** 2 for el in a]
И еще одна разновидность генератора – в котором в качестве первой части использовано значение, возвращаемое функцией input():
Spisok_strok = [input('Введите следующий элемент списка ') for i in range(10)]
Spisok_chisel = [int(input('Введите следующий элемент списка ')) for i in range(15)]
Действия со списками
1. Сложение списков
Списки можно «складывать» с помощью знака «+»:
a = [20, 61, 2, 37]
b = [55, 36, 7, 18]
c = a + b
d = c + [100, 101]
Список d будет иметь вид:
[20, 61, 2, 37, 55, 36, 7, 18, 100, 101]
2. Умножать на целое число
a = [0] * 10
b = ['']; k = 8
b2 = b * k
В этом случае списки а и b примут вид:
a = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
b2 = ['', '', '', '', '', '', '', '']
Таким образом, «умножение» в данном случае – это повторение списка заданное число раз