在python中使用适当的if条件打印出列表

时间:2017-12-04 01:05:30

标签: python python-2.7 list if-statement printing

k1 = ['UCF', 'Mario', 'JonnnyStorm']
k2 = [10, 14, 5]
k3 = [300, 700, 600]

for p,g,h in zip(k1,k2,k3):
    if k2 > 10 and k3 > 400:
        print p,g,h

我想看到的是

输出:

Mario 14 700

我得到的是

输出:

UCF 10 300
Mario 14 700
JonnnyStorm 5 600

即使我切换和玩条件,我仍然得到完全错误的答案,我没想到。我必须遗漏一些重要的东西。

如果我可以打印出来

Mario has 14 Points and is at Rank 700.

那会很棒。我尝试使用正常的打印语法使用%s和%d,并且遇到了错误。如果有人不仅可以给我一个答案,而且可以详细解释你做的事情会很棒。我真的很想明白为什么。

2 个答案:

答案 0 :(得分:1)

k1 = ['UCF', 'Mario', 'JonnnyStorm']
k2 = [10, 14, 5]
k3 = [300, 700, 600]

for p,g,h in zip(k1,k2,k3):
    if g > 10 and h > 400:
        print '{0} has {1} points and is at Rank {2}'.format(p, g, h)

您的代码会在条件中测试k2k3,而不是其中的元素。

答案 1 :(得分:0)

实际上,您将列表与数字进行比较,k2是列表,而10是数字;所以实际的比较是假的,应该引发异常,但在python中并非如此。列表k2与数字的比较将始终大于任何数字,因此条件始终为真。 soltuion已经发布。 希望它有所帮助