2012-07-12 67 views

回答

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 
+0

我有一個答案,但這一個我更好。感謝您的拉鍊提示! – ChipJust 2012-07-12 16:26:06

+0

謝謝!它真的幫助!很好的解決方案 – 2012-07-12 16:35:42

+0

可能整潔:'map(「;」.join,names,countries,map(str,ages))' – katrielalex 2012-07-12 16:41:09

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]} 
+0

謝謝,相應修改。 – TakeS 2012-07-12 16:26:58

+0

'範圍(len(name))'很貴。 – 2012-07-12 16:29:36

+0

@jakob:你需要付錢嗎? <:P – 2012-07-12 16:33:17

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)]) 
+0

+1爲一個班輪,使用'format()'而不是這些舊'%s格式化。 – 2012-07-12 16:29:25

+1

@AshwiniChaudhary實際上'%s'仍然是完全可信的 – 2012-07-12 16:30:01

+0

@JakobBowyer,但是使用'format()'很好,因爲舊的格式可能會被棄用。 – 2012-07-12 16:33:52

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++ 
+2

更好地使用'xrange(len(name))'而不是手動增加'i'。 – 2012-07-12 16:28:27

+0

非常真實,我認爲D Seitas的答案是我最喜歡的方式 – EnriqueC91 2012-07-12 16:30:57

+1

...或者使用'for i,n列舉(名稱):...' – glglgl 2012-07-12 16:47:38

0

我的2美分;-)

從使用發電機itertools模塊:

from itertools import izip 

nlist = ['%s; %s; %s' %t for t in izip(name, country, age)] 
+0

兩個問題 - 錯過關閉方括號......並且你不能將一個int加入到字符串:) – 2012-07-12 17:25:23

+0

如此真實 - 你應該總是嘗試運行你自己的代碼;-) – 2012-07-12 18:22:14

相關問題