for names in city_names:
iteration_count += 1
print(iteration_count, names)
我正在尝试将此循环的结果设置为等于变量,我将如何进行呢?
这是我在循环中使用的列表:
city_names = ['Buenos Aires',
'Toronto',
'Marakesh',
'Albuquerque',
'Los Cabos',
'Greenville',
'Archipelago Sea',
'Pyeongchang',
'Walla Walla Valley',
'Salina Island',
'Solta',
'Iguazu Falls']
答案 0 :(得分:1)
尝试一下:
city_names = ['Buenos Aires',
'Toronto',
'Marakesh',
'Albuquerque',
'Los Cabos',
'Greenville',
'Archipelago Sea',
'Pyeongchang',
'Walla Walla Valley',
'Salina Island',
'Solta',
'Iguazu Falls']
result = ''
iteration_count = 1
for names in city_names:
result = result + str(iteration_count) + ' ' + names + ' '
iteration_count += 1
print (result)
结果如您所愿:
1 Buenos Aires 2 Toronto 3 Marakesh 4 Albuquerque 5 Los Cabos 6 Greenville 7 Archipelago Sea 8 Pyeongchang 9 Walla Walla Valley 10 Salina Island 11 Solta 12 Iguazu Falls
答案 1 :(得分:1)
您可以将str.join
方法与生成器表达式一起使用,该表达式可以迭代enumerate
生成器,并使用计数器输出city_names
:
output = ''.join(f'{count} {name}\n' for count, name in enumerate(city_names, 1))
output
变为:
1 Buenos Aires
2 Toronto
3 Marakesh
4 Albuquerque
5 Los Cabos
6 Greenville
7 Archipelago Sea
8 Pyeongchang
9 Walla Walla Valley
10 Salina Island
11 Solta
12 Iguazu Falls
答案 2 :(得分:1)
通常,要将捕获到标准输出的内容捕获到变量中,可以使用sys.stdout
方法作为上下文管理器,使用StringIO
对象临时覆盖unittest.mock.patch
:< / p>
from io import StringIO
from unittest.mock import patch
with patch('sys.stdout', new=StringIO()) as output:
iteration_count = 0
for names in city_names:
iteration_count += 1
print(iteration_count, names)
print(output.getvalue())
这将输出:
1 Buenos Aires
2 Toronto
3 Marakesh
4 Albuquerque
5 Los Cabos
6 Greenville
7 Archipelago Sea
8 Pyeongchang
9 Walla Walla Valley
10 Salina Island
11 Solta
12 Iguazu Falls