同时使用两个for循环

Hem*_*rel 2 python python-3.x

我有两个列表,其中包含未知数量的元素。一个包含名称的列表,另一个包含种姓

'''像这样'''

names = ['name1','name2',........'name99'] 
castes = ['cast1','cast2',........'cast99']
Run Code Online (Sandbox Code Playgroud)

我想这样打印:

Hello Name1 cast1.
Hello Name2 Cast2.
.
.
.
.
.
Hello Name99 Cast99
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了,但是没有用。

for i in names:
   for j in castes:
      print('Hello '+ i + j)
Run Code Online (Sandbox Code Playgroud)

但是它随机打印。喜欢...

Hello Name1 Cast1
Hello Name1 Cast2
.
.
Hello Name1 Cast99
.
.
.
Hello Name2 Cast1
Hello Name2 Cast2
.
.
Hello Name3 Cast99
.
.
.
Run Code Online (Sandbox Code Playgroud)

J_H*_*J_H 5

zip()内建会做你想做的,结合有相应的元素列表。

>>> 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')]
Run Code Online (Sandbox Code Playgroud)

在这里,您可以根据需要对每个元组进行精细处理:

for name, caste in zip(names, castes):
    print('Hello', name.title(), caste.title())
Run Code Online (Sandbox Code Playgroud)

这适用于您需要指定的多个属性:

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}.')
Run Code Online (Sandbox Code Playgroud)