2

重複の可能性:
Python で 2 つのリストを並列に反復するにはどうすればよいですか?

私はこのような3つのリストを持っています:

name = ['sam', 'john', 'napoleon', 'tanaka', 'ming']
country = ['USA', 'England', 'France', 'Japan', 'China']
age = [23, 41, 19, 16, 55]

そして、次のような出力が必要です:

sam; USA; 23
john; England; 41
napoleon; France; 19
tanaka; Japan; 16
ming; China; 55

どんな助けでも素晴らしいでしょう。前もって感謝します

4

5 に答える 5

10

あなたが使用することができますzip():

name = ['sam', 'john', 'napoleon', 'tanaka', 'ming']
country = ['USA', 'England', 'France', 'Japan', 'China']
age = [23, 41, 19, 16, 55]
for x,y,z in zip(name,country,age):
    print("{0}; {1}; {2}".format(x,y,z))

または使用map()

mapp=map(lambda x,y,z:"; ".join((x,y,str(z))),name,country,age)
for x in mapp:
    print(x)

出力:

sam; USA; 23
john; England; 41
napoleon; France; 19
tanaka; Japan; 16
ming; China; 55
于 2012-07-12T16:21:22.267 に答える
3
name = "sam john napoleon tanaka ming".split()
country = "USA England France Japan China".split()
age = [23, 41, 19, 16, 55]

print "\n".join(["%s; %s %d" % (x) for x in zip(name,country,age)])
于 2012-07-12T16:25:08.580 に答える
1

リストの長さが同じであると仮定します。

for i in range(len(name)):
    print '%s; %s; %s' %(name[i], country[i], age[i])

更新: これは、Python 3.x を使用していることを前提としています。2.x の場合、一般的なパフォーマンスを向上させるために xrange を使用します。または:

for i in range(len(name)):
    print '{0}; {1}; {2}'.format{name[i], country[i], age[i]}
于 2012-07-12T16:24:37.217 に答える
0

それらがすべて同じ長さになることがわかっている場合は、次のことができます。

name = ['sam', 'john', 'napoleon', 'tanaka', 'ming']
country = ['USA', 'England', 'France', 'Japan', 'China']
age = [23, 41, 19, 16, 55]

i = 0

for n in name:
    print name[i] + '; ' + country[i] + '; ' + str(age[i])
    i++
于 2012-07-12T16:27:11.780 に答える
0

私の2セント;-)

itertools モジュールのジェネレーターを使用する:

from itertools import izip

nlist = ['%s; %s; %s' %t for t in izip(name, country, age)]
于 2012-07-12T16:30:41.853 に答える