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)))
    。但你的答案更具可读性。