используя два цикла for для преобразования 2D-списка в 1D-список в Python - PullRequest
0 голосов
/ 16 ноября 2018
A = [1,3,5]
B = ['a','b']
for x in A , for y in B :
  print(x,y)

как мы можем реализовать два цикла for и преобразовать 2D-список в 1D-список

желаемый результат: [(1, 'a'), (2, 'b'), (3, 'a'), (3, 'b'), (5, 'a'), (5, 'b')]

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018

Если вы хотите равномерное распределение элементов в обоих списках:

A = [1,3,5]
B = ['a','b']

l = []

for x in A:
    for y in B:
        l.extend([x, y])                

>>> print(l)
[1, 'a', 1, 'b', 3, 'a', 3, 'b', 5, 'a', 5, 'b']
0 голосов
/ 16 ноября 2018
A = [1,3,5]
B = ['a','b']

l = []
#for each element in A
for i in A:
    #for each element in B
    for o in B:
        l.append((i,o))

Итерация по каждому элементу в каждом списке, затем добавление их вместе

0 голосов
/ 16 ноября 2018

Если вы просто хотите выполнить итерацию по двум спискам одновременно, вы можете использовать zip:

x = [1, 3, 5]
y = ['a', 'b', 'c']
for i, j in zip(x, y):
    print(i, j)  # Will print "1 a" followed by "3 b"

Обратите внимание, что zip фактически вернет список кортежей, содержащих объединенные элементы из обоих списков, и если спискине равны по длине, тогда более длинный список будет просто усечен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...