Python 同时使用两个for循环
我有两个元素数量未知的列表。一份名单上有姓名,另一份名单上有种姓 “像这样” 我想要这样的印刷品:Python 同时使用两个for循环,python,python-3.x,Python,Python 3.x,我有两个元素数量未知的列表。一份名单上有姓名,另一份名单上有种姓 “像这样” 我想要这样的印刷品: Hello Name1 cast1. Hello Name2 Cast2. . . . . . Hello Name99 Cast99 我试过这个,但没用 for i in names: for j in castes: print('Hello '+ i + j) 但它是随机打印的。像 Hello Name1 Cast1 Hello Name1 Cast2 . . Hell
Hello Name1 cast1.
Hello Name2 Cast2.
.
.
.
.
.
Hello Name99 Cast99
我试过这个,但没用
for i in names:
for j in castes:
print('Hello '+ i + j)
但它是随机打印的。像
Hello Name1 Cast1
Hello Name1 Cast2
.
.
Hello Name1 Cast99
.
.
.
Hello Name2 Cast1
Hello Name2 Cast2
.
.
Hello Name3 Cast99
.
.
.
内置的会做你想做的事,
组合具有相应元素的列表
>>> names = 'n1 n2 n3 n4'.split()
>>> castes = 'c1 c2 c3 c4'.split()
>>> pprint.pprint(list(zip(names, castes)), width=20)
[('n1', 'c1'),
('n2', 'c2'),
('n3', 'c3'),
('n4', 'c4')]
在此基础上,您可以根据需要调整每个元组:
for name, caste in zip(names, castes):
print('Hello', name.title(), caste.title())
这适用于您想要指定的任意多个属性:
names = 'n1 n2 n3 n4'.split()
castes = 'c1 c2 c3 c4'.split()
towns = 't1 t2 t3 t4'.split()
for name, caste, town in zip(names, castes, towns):
print(f'{name} ({caste}) lives in {town}.')
用于同时迭代两个列表:
names = ['name1','name2','name99']
castes = ['cast1','cast2','cast99']
for x, y in zip(names, castes):
print(f'Hello {x} {y}')
# Hello name1 cast1
# Hello name2 cast2
# Hello name99 cast99
这可以在没有zip()
的情况下通过一个循环完成您的方法的问题是,您在另一个循环中使用了一个循环,因此内部循环重复的次数与外部循环重复的次数相同
for i in range(len(names)):
print(f'Hello {names[i]} {castes[i]}')
for i in range(len(names)):
print(f'Hello {names[i]} {castes[i]}')