Задача

11 /11


Генераторы списков

Теория Нажмите, чтобы прочитать/скрыть


Генераторы списков

Язык Python позволяет решать многие задачи кратко и надёжно. Перечислим основные возможности по заполнению массива. 1) Создание и заполнение массива можно записать следующим образом:
A = [i for i in range(N)]   # При N = 5, массив A = [0,1,2,3,4]
A = [i*i for i in range(N)] # При N = 5, массив A = [0,1,4,9,16]
for i in range(N) - перебирает все значения i от 0 до N-1.

В очередной элемент массива будет записано значение, которое стоит перед словом for, в первом случае i, во втором - i*i.

Тот же результат получим при использовании следующей записи:
A = list(range(N))   # при N = 5, массив A = [0,1,2,3,4]

2) Можно записывать в массив не все значения, а только те, что удовлетворяют определенному условию.
 
Пример
Заполнение массива всеми четными числами в диапазоне от 0 до 9.
A = [i for i in range(10)
           if i % 2 == 0]
print(*A)    # массив A = [0,2,4,6,8]
В данном случае нужно понимать, что длина массива будет меньше 10. 

3) Заполнение массива с клавиатуры элементами, которые расположены по одному в строке, можно оформить двумя способами.
 
N = 5
A = [0]*5
for i in range(N):
    A[i] = int(input())
A = [int(input()) for i in range(N)]
# при каждом повторении цикла,  
# введенная строка преобразуется 
# в целое число (с помощью int)
# и это число добавляется к массиву


4) Заполнение массива с клавиатуры элементами, которые все расположены в одной строке немного сложнее. Необходимо считать строку, разбить ее на элементы, а затем каждый элемент преобразовать в целое число
s = input().split() 
A = [int(i) for i in s] 
или так
A = list(map(int, input().split())) # встроенная функция list() 
                                    # преобразует последовательность 
                                    # в изменяемый список

Вывод массива

Выводить массив на экран можно также разными способами.
 
Стандартный способ, используемый во многих языках программирования. Такой цикл можно записать короче. В значение х на каждом шаге цикла заносится очередной элемент массива. В языке Python можно написать и так.
for i in range(len(A)):
    print(A[i], end=" ")
for x in A:
    print(x, end=" ")
print(*A)
# знак * перед именем
# массива означает, что 
# нужно преобразовать 
# массив в набор отдельных значений

Задача

На вход подается число N - количество элементов массива. 
Далее идут два массива из N целых чисел каждый:
- элементы первого массива идут по одному в каждой строке;
- элементы второго массива - записаны все в одной строке через пробел.
Заполните два массива и выведите их элементы через пробел в одну строку:
- первый массив в первой строке;
- второй массив во второй строке.
 
Примеры
Входные данные Выходные данные
1 3
1
2
3
4 5 6
1 2 3
4 5 6

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Free Pascal1
Python2384
Комментарий учителя