Python 基于两个列表的打印输出
我有一个包含字符串元素的列表:Python 基于两个列表的打印输出,python,Python,我有一个包含字符串元素的列表: movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION'] 以及另一个包含整数值的列表: userlst = [[1,20],[6,7]] 我计划根据两个列表打印输出,其中movielst中的第一个元素对应于userlst中的第一个列表,以此类推 要获取的输出: Movies: A WALK,DRAGONBALL Users: 1,20 Movies: JAMES BOND,MISSION Users: 6,
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
以及另一个包含整数值的列表:
userlst = [[1,20],[6,7]]
我计划根据两个列表打印输出,其中movielst中的第一个元素对应于userlst中的第一个列表,以此类推
要获取的输出:
Movies: A WALK,DRAGONBALL
Users: 1,20
Movies: JAMES BOND,MISSION
Users: 6,7
我写
for j in range(len(userlst)-1):
for i in movielst:
print("Movies: " + str(i))
print("Users: " + str(userlst[j]))
但我得到了:
Movies: A WALK,DRAGONBALL
Users: 1,20
Movies: JAMES BOND,MISSION
Users: 1,20 #should be 6,7
如何根据两个列表并行打印输出?如果您知道两个列表的长度相同:
for i in range(len(movielst)):
print("Movies: {}".format(str(movielst[i]))
print("Users: {}".format(str(userlst[i])))
print(' ')
这样,您可以在两个循环上循环,并在同一循环中打印两个列表的相同索引
.format的工作原理如下:
print('text {} text {}'.format(<first thing>, <second thing>))
print('text{}text{}'。格式(,)
产出:
text <first thing> text <second thing>
文本
如果您知道两个列表的长度相同:
for i in range(len(movielst)):
print("Movies: {}".format(str(movielst[i]))
print("Users: {}".format(str(userlst[i])))
print(' ')
这样,您可以在两个循环上循环,并在同一循环中打印两个列表的相同索引
.format的工作原理如下:
print('text {} text {}'.format(<first thing>, <second thing>))
print('text{}text{}'。格式(,)
产出:
text <first thing> text <second thing>
文本
您可以使用zip
Ex:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst, userlst):
print("Movies: {}".format(i[0]))
print("Users: {}".format(", ".join(map(str, i[1]))))
Movies: A WALK,DRAGONBALL
Users: 1, 20
Movies: JAMES BOND,MISSION
Users: 6, 7
输出:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst, userlst):
print("Movies: {}".format(i[0]))
print("Users: {}".format(", ".join(map(str, i[1]))))
Movies: A WALK,DRAGONBALL
Users: 1, 20
Movies: JAMES BOND,MISSION
Users: 6, 7
注意:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst, userlst):
print("Movies: {}".format(i[0]))
print("Users: {}".format(", ".join(map(str, i[1]))))
Movies: A WALK,DRAGONBALL
Users: 1, 20
Movies: JAMES BOND,MISSION
Users: 6, 7
map
将int转换为userlst的字符串join
将userlst中的元素压缩为所需格式您可以使用
zip
Ex:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst, userlst):
print("Movies: {}".format(i[0]))
print("Users: {}".format(", ".join(map(str, i[1]))))
Movies: A WALK,DRAGONBALL
Users: 1, 20
Movies: JAMES BOND,MISSION
Users: 6, 7
输出:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst, userlst):
print("Movies: {}".format(i[0]))
print("Users: {}".format(", ".join(map(str, i[1]))))
Movies: A WALK,DRAGONBALL
Users: 1, 20
Movies: JAMES BOND,MISSION
Users: 6, 7
注意:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst, userlst):
print("Movies: {}".format(i[0]))
print("Users: {}".format(", ".join(map(str, i[1]))))
Movies: A WALK,DRAGONBALL
Users: 1, 20
Movies: JAMES BOND,MISSION
Users: 6, 7
map
将int转换为userlst的字符串join
将userlst中的元素压缩为所需格式>>> print '\n'.join("Movies: {}\nUsers: {}".format(x,y) for x,y in zip(movielst,userlst))
Movies: A WALK,DRAGONBALL
Users: [1, 20]
Movies: JAMES BOND,MISSION
Users: [6, 7]
或者,如注释中所述,如果您想要双倍行距:
>>> print '\n\n'.join("Movies: {}\nUsers: {}".format(*z) for z in zip(movielst,userlst))
Movies: A WALK,DRAGONBALL
Users: [1, 20]
Movies: JAMES BOND,MISSION
Users: [6, 7]
使用并理解:
>>> print '\n'.join("Movies: {}\nUsers: {}".format(x,y) for x,y in zip(movielst,userlst))
Movies: A WALK,DRAGONBALL
Users: [1, 20]
Movies: JAMES BOND,MISSION
Users: [6, 7]
或者,如注释中所述,如果您想要双倍行距:
>>> print '\n\n'.join("Movies: {}\nUsers: {}".format(*z) for z in zip(movielst,userlst))
Movies: A WALK,DRAGONBALL
Users: [1, 20]
Movies: JAMES BOND,MISSION
Users: [6, 7]
第一个循环中的j在“i”遍历每个元素之前不会增加,因此j将两次打印1.20。对于同时遍历两个列表,可以使用一个For循环
for j in range(len(userlst)):
print("Movies: " + str(movielst[j]))
print("Users: " + str(userlst[j]))
输出将是:
Movies: A WALK,DRAGONBALL
Users: [1, 20]
Movies: JAMES BOND,MISSION
Users: [6, 7]
第一个循环中的j在“i”遍历每个元素之前不会增加,因此j将两次打印1.20。对于同时遍历两个列表,可以使用一个For循环
for j in range(len(userlst)):
print("Movies: " + str(movielst[j]))
print("Users: " + str(userlst[j]))
输出将是:
Movies: A WALK,DRAGONBALL
Users: [1, 20]
Movies: JAMES BOND,MISSION
Users: [6, 7]
您可以尝试以下方法:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst,userlst):
print("Movies : {}".format(i[0]))
print("Users : {} {}".format(*i[1]))
输出:
Movies : A WALK,DRAGONBALL
Users : 1 20
Movies : JAMES BOND,MISSION
Users : 6 7
您可以尝试以下方法:
movielst = ['A WALK,DRAGONBALL', 'JAMES BOND,MISSION']
userlst = [[1,20],[6,7]]
for i in zip(movielst,userlst):
print("Movies : {}".format(i[0]))
print("Users : {} {}".format(*i[1]))
输出:
Movies : A WALK,DRAGONBALL
Users : 1 20
Movies : JAMES BOND,MISSION
Users : 6 7
很好的解决方案。我们可以再次简化此过程,而无需解压缩
x
和y
。例如,print('\n'.join(“Movies:{}\nUsers:{}.format(*args)用于zip中的args(movielst,userlst)))
。但你的答案更具可读性。很好的解决方案。我们可以再次简化此过程,而无需解压缩x
和y
。例如,print('\n'.join(“Movies:{}\nUsers:{}.format(*args)用于zip中的args(movielst,userlst)))
。但你的答案更具可读性。