首页 > 解决方案 > 如何将变量分配给 Python 中两个列表的已建立循环?

问题描述

我将以下 for 循环分配给 Python 中的一组两个列表索引,并且必须将其设置为变量“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. Toronto"。使用 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])

标签: pythonloopsvariables

解决方案


这里有两个可行的解决方案,第一个使用传统的 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)
]

推荐阅读