1. Снова массивы (они же в python списки)
Список - тип данных для хранения набора элементов.
Задать его можно следующим образом:
a = [0, 2, 4, 7] b = ["yes", "no"] |
Обратиться к списку можно с помощью квадратных скобок, а именно:
# Это комментарий print(a[1]) # Другой комментарий, выведет 2 print(b[0]) # выведет yes |
Длину списка можно узнать через
len(a). (где
а - название списка)
Пройти циклом по массиву можно двумя способами:
A = [1, 2, 3, 4, 5]
# Вариант 1, хотим напечатать каждый элемент дважды for element in A: print(element, element) # 1 1 # 2 2 # 3 3 # 4 4 # 5 5 # ОБРАТИТЕ ВНИМАНИЕ! Этим способом вы НЕ можете менять значения элементов массива, по которым вы проходите: for element in A: element = element * 2 print(A) # [1, 2, 3, 4, 5]
# Вариант 2.1, хотим умножить каждый элемент на 2 for i in range(len(A)): A[i] = A[i]*2
print(A) #[2, 4, 6, 8, 10]
A = [1, 2, 3, 4, 5] # Вариант 2.2, хотим сложить каждый чётный индекс со следующим нечётным for i in range(0, len(A) - 1, 2): # i проходит значения от 0 (вкл) до 4 (невкл) с шагом 2 A[i] = A[i] + A[i+1] print(A) # [3, 2, 7, 4, 5] # Ответьте себе на вопрос: а что если бы внутри range было бы написано len(A), а не len(A) - 1 |
При этом можно обращаться и с конца, используя отрицательные числа, то есть под индексом -1 будет последний элемент списка.
# Пример a = [1, 1, 2, 3, 5, 10, 13] a[-1] = a[-1] + 1 #увеличить последний элемент на 1 a[-2] = a[-3] + a[-4] #заменить второй с конца элемент на сумму третьего и четвёртого с конца
b = [] for i in range(1, len(a)): b.append(a[-i] + 1) # в этом цикле i проходит значения от 1 до 7 (длина списка "а") не включая #последнее значение, и последоваетльно добавляет элементы a[-1] + 1, a[-2] + 1 ... a[-6] + 1 print(" ".join(b)) #выведет строку вида b[0]*пробел*b[1]*пробел*...*пробел*b[-1] #15 9 6 4 3 2 print("".join(a)) #выведет строку вида a[0]a[1]a[2]...a[-1] без разделителя #11235814 |
Также можно с помощью
if узнать, содержится ли элемент в списке:
a = [0, 2, 4, 7] for i in range(10): #пробегаем i от 0 до 9 if i in a: # если i есть в а print(i, "exists!") else: # иначе (если i не находится в а) print(i, "does not exist!")
# 0 exists! # 1 does not exist! # 2 exists! # 3 does not exist! # 4 exists! # 5 does not exist! # 6 does not exist! # 7 exists! # 8 does not exist! # 9 does not exist!
if 1 not in a: print("1 does not exist!") else: print("1 exists!")
# 1 does not exist!
|
В задачах может быть полезна следующая конструкция:
A = input().split() for i in range(len(A)): A[i] = int(A[i]) |
Она позволяет сделать из строчки чисел, записанных через пробел, список
А.
Для того, чтобы создать двумерный массив, можно воспользоваться следующим кодом:
N = int(input()) # принимаем на вход число - размер двумерного массива # [0 for i in range(N)] создаёт одномерный массив длины N, заполненный нулями # вместо 0 можно использовать что угодно, в том числе массив A = [ [0 for i in range(N)] for j in range(N)] # так можно создать массив 10 на 10 и записать его в переменную A
A[1][2] = 3 # присваеваем значение print(A[4][4]) # выведет 0 print(A[1][2]) # выведет 3
print(A[N][3]) #!! выведет ошибку, т.к. выйдет за пределы массива |