如何将变量分配给 Python 中两个列表的已建立循环?



我在 Python 中将以下 for 循环分配给一组两个列表索引,并且必须将其设置为变量"names_and_ranks"。我该怎么做?

for index in [0,1,2,3,4,5,6,7,8,9,10,11]:
print (city_indices[index]+".",city_names[index])

这将打印如下:

1. Buenos Aires
2. Toronto
3. Pyeongchang
4. Marakesh
5. Albuquerque
6. Los Cabos
7. Greenville
8. Archipelago Sea
9. Walla Walla Valley
10. Salina Island
11. Solta
12. Iguazu Falls

最初的问题是:"将变量names_and_ranks分配给一个列表,每个元素等于城市名称及其相应的排名。例如,第一个元素将是"1.布宜诺斯艾利斯",第二个是"2.多伦多"。使用 for 循环和列表city_indices和city_names来完成此操作。

for index in [0,1,2,3,4,5,6,7,8,9,10,11]:
print (city_indices[index]+".",city_names[index])

这里有两个工作解决方案,第一个使用传统的for循环,第二个使用列表理解:

city_indices = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
city_names = [
"Buenos Aires", "Toronto", "Pyeongchang", "Marakesh", "Albuquerque",
"Los Cabos", "Greenville", "Archipelago Sea", "Walla Walla Valley",
"Salina Island", "Solta", "Iguazu Falls"
]
# using a for loop
names_and_ranks = []
for index in range(12):
names_and_ranks.append(f"{city_indices[index]}. {city_names[index]}")
# using list comprehension
names_and_ranks = [
". ".join([str(x) for x in item]) for item in zip(city_indices, city_names)
]