0

だから私が直面したこの新しい問題はこれです。それぞれ5つのアイテムを持つ2つのリストがあります。

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

私がやりたいのは、これらの各リストの1番目、2番目、3番目、5番目の項目を文字列に出力することです。

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

ただし、2つのリストの各要素に対してテキストが実行されるように、毎回新しい行に印刷する必要があります。

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

私はこれを行う方法がわかりません。リスト分割を使ってみましたが、5つのうち4つ目なのでスキップする方法がわかりません。また、これを使用して、新しい行に文字列を一覧表示します。

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

しかし、これを2つのリストで使用する方法や、2つのリストで使用できるかどうかもわかりません。

助けてください :(

編集:

また、スクリプトの要素が何であるかわからないので、リスト内のそれらの番号のみを使用できます。したがって、両方のリストの[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)

  • 2つを組み合わせることにより、インデックスに沿って必要な要素のリストを取得します
  • 最初の要素にはインデックスが0あり、4番目の要素は必要ないため、インデックスがないことを確認してください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
for x in zip(list1,list2)[:-1]:
    print("the number is {0} the element is {0}".format(x))
于 2012-09-26T14:45:51.450 に答える
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 に答える