从五个项目列表中打印除第四个项目之外的所有项目,两个列表彼此相邻

时间:2012-09-26 14:42:06

标签: python python-2.7

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

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 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

for pos in len(listone):
    if(pos != 3):
        print("the number is {0} the element is {1}".format(pos,listone[pos]))

答案 2 :(得分:0)

for x in zip(list1,list2)[:-1]:
    print("the number is {0} the element is {0}".format(x))

答案 3 :(得分: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)