2014-12-11 449 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