我有一个列表如下:
a = [1,2,3]
b = [2,3,4]
c = [3,4,5]
lists = [a,b,c]
我想在“list”中打印出第一个元素的名称,如下所示:
print lists[0]
a
但是当然python不能像那样工作并且这样做:
print lists[0]
[1,2,3]
如何在不打印列表[0]的内容的情况下打印出列表[0]的名称?
答案 0 :(得分:2)
听起来您想使用OrderedDict
:
from collections import OrderedDict
dlists = OrderedDict([('a', [1,2,3]), ('b', [2,3,4]), ('c', [3,4,5])])
print dlists.keys()[0]
答案 1 :(得分:1)
您可以查找范围以查找与您要查找的对象关联的名称。
def namesOf(x, scope=globals()):
r = []
for name, value in scope.iteritems():
if value is x:
r.append(name)
return r
a = [1,2,3]
b = [2,3,4]
c = [3,4,5]
lists = [a,b,c]
print namesOf(lists[0], locals())
但是如果你知道自己在做什么就去做。
答案 2 :(得分:0)
最好的选择似乎是使用字典。
a = [1,2,3]
b = [2,3,4]
c = [3,4,5]
data = {'a':a,'b':b,'c':c}
如果我想打印出我可以做的第一个列表的名称:
data.keys()[0]
'a'