0

所以我遇到的这个新问题就是这个。我有两个列表,每个列表有五个项目。

listone = ['water', 'wind', 'earth', 'fire', 'ice']
listtwo = ['one', 'two', 'three', 'four', 'five']

我想要做的是打印字符串中每个列表中的第一个、第二个、第三个和第五个项目:

print("the number is %s the element is %s" % (listtwo, listone)

但是他们每次都需要在新行中打印,以便为两个列表中的每个元素运行文本:

the number is one the element is water
the number is two the element is wind
the number is three the element is earth
the number is five the element is five

我不知道该怎么做。我尝试使用列表拆分,但由于它是五项中的第四项,我无法弄清楚如何跳过它。我也用它在新行中列出字符串:

for x in listone and listtwo:
print("the number is {0} the element is {0}".format(x)  

但我不知道如何将它与两个列表一起使用,或者它是否甚至可以与两个列表一起使用。

请帮忙 :(

编辑:

另外我不知道脚本的元素是什么,所以我只能在列表中使用它们的编号。所以我需要去掉两个列表中的 [4] 。

4

4 回答 4

7
for (i, (x1, x2)) in enumerate(zip(listone,listtwo)):
    if i != 3:
        print "The number is {0} the element is {1}".format(x1, x2)

解释

  • zip(listone,listtwo)你一个元组列表(listone[0],listtwo[0]), (listone[1],listtwo[1])...
  • enumerate(listone) 你一个元组列表(0, listone[0]), (1, listone[1]), ...]

    (你猜对了,这是另一种更有效的方法zip(range(len(listone)),listone)

  • 通过将两者结合起来,您可以获得所需元素的列表以及它们的索引
  • 因为您的第一个元素具有索引0并且您不想要第四个元素,所以只需检查索引是否不是3
于 2012-09-26T14:46:14.010 回答
1
for pos in len(listone):
    if(pos != 3):
        print("the number is {0} the element is {1}".format(pos,listone[pos]))
于 2012-09-26T14:45:59.873 回答
0
listone = ['water', 'wind', 'earth', 'fire', 'ice']
listtwo = ['one', 'two', 'three', 'four', 'five']
z = zip(listone, listtwo)
z1 = z[:3]
z1.append(z[4])
for i, j in z1:
    print "the number is {} the element is {}".format(j, i)
于 2012-09-26T14:47:29.343 回答
0
for x in zip(list1,list2)[:-1]:
    print("the number is {0} the element is {0}".format(x))
于 2012-09-26T14:45:51.450 回答