#python #for-loop
#python #for-цикл
Вопрос:
У меня есть два списка:
list1 = ['A','C','E','G','A']
list2 = ['B','D','F','H','N']
Я хотел бы создать эти новые имена и добавить их в пустой список
A_vs_B
C_vs_D
E_vs_F
G_vs_H
A_vs_N
Структура такова: 1-й элемент в списке1 с 1-м элементом в списке 2 и так далее. Мне нужны только эти имена.
Это то, что я делал до сих пор
newlist = []
for i in list1:
for j in list 2:
name = i '_vs_' j
newlist.append(name)
Проблема в том, что он создает все возможные комбинации имен между list1
amp; list2. Как мне ограничить мой цикл, чтобы создавать только те имена, которые я хочу?
Ответ №1:
используйте zip(), который принимает два списка (или другие итерируемые) и создает итерацию кортежей. В цикле for распакуйте кортеж в переменные i
и j
newlist = []
for i, j in zip(list1, list2):
name = i '_vs_' j
newlist.append(name)
Вы могли бы еще больше улучшить свой код, используя строки формата:
newlist = []
for i, j in zip(list1, list2):
newlist.append(f'{i}_vs_{j}')
и использование понимания списка:
newlist = [f'{i}_vs_{j}' for i, j in zip(list1, list2)]
Ответ №2:
Вы могли бы попробовать:
list1 = ['A','C','E','G','A']
list2 = ['B','D','F','H','N']
newlist = []
for i in range(0, len(list1)):
name = list1[i] '_vs_' list2[i]
newlist.append(name)
print(newlist)
Комментарии:
1. Ты так много времени, чтобы ответить