2014-12-11 88 views
-2

我有一個列表,其中包括無限未知數量的元素(我沒有在列表的長度或值的類型控制)Python:如何打印列表元素的位置和值?

a = [x, y, z ...] 

其中x = 1,Y = 9 ,z ='你好'...

我想遍歷列表「a」並打印所有元素的名稱和值。 我希望如果我能實現類似的東西:

for i in a: 
    print i $i 

我想有作爲輸出:

x 1 
y 9 
z Hello 
+1

你怎麼能有一個無限數量的元素列表? – smac89 2014-12-11 00:48:00

+1

也許他是指發電機? – Marcin 2014-12-11 00:50:18

+1

@ Smac89要小心,這可能是Chuck Norris。 – tdelaney 2014-12-11 00:57:14

回答

1
from itertools import cycle # an infinite repeating set 
my_infinite = cycle(["a","b","c"]) 
a=1,b=4,c=99 
for val in my_infinite: 
    print val, globals()[val] 

也許..它的可敬和hackey,但它可能工作

+0

使用枚舉很有趣,但是我的變量可以有不同的值。 x = 1,y = 4,z = 999,...所以我需要更通用的解決方案,不要考慮具體的訂單 – Monster 2014-12-11 01:08:36

+0

是的,我誤解了你的問題...看到tdelaney在你的問題的評論...你真的不能做到這一點(請參閱我的編輯可能適合你的東西...) – 2014-12-11 01:10:15

+0

是的,這是工作!謝謝 – Monster 2014-12-11 01:16:03

0

事情是這樣的:

import string 

for a, b in zip(string.ascii_lowercase, xrange(1, 27)): 
    print a, b 
0

你應該用一本字典:

a = {'x': 1, 'y': 2} 

for i in a: 
    print i, a[i] 
+0

這幾乎保證不是正確的答案...因爲他明確地說它的無限列表(沒有這樣的事情......但我猜他是指某種發生器),這是不可能與字典 – 2014-12-11 01:06:38

+0

The想法是我不想將它們放在字典中。我不想在數據更改時重寫 – Monster 2014-12-11 01:10:32

+0

是的,對不起。我的問題不是很清楚 – Monster 2014-12-11 01:16:27