我正在尝试在列表列表中查找列表的名称(“列表列表”是否有特定名称?)。
例如,我有以下列表:
x= ["a","b"]
y= ["c","d"]
z= [x,y]
如果我现在想知道列表“ z”中第一个列表的名称是什么,我会尝试这样做:
print(z[0])
但是我得到的不是x,而是x的值(“ a”,“ b”)
答案 0 :(得分:6)
您要使用字典而不是列表。如果列表只是值的枚举,则字典是键值数据结构。
这就是您的示例作为字典文字的样子:
{
"x": ["a", "b"],
"y": ["c", "d"],
}
与列表不同,字典不保留元素的顺序!如果您有需要保留订单的应用程序,则可以使用OrderedDict。 更新:从Python 3.7开始,该段落不再适用。
答案 1 :(得分:4)
除非您在代码中更改了某些策略,例如,否则无法使用变量名称作为输出,例如:
x = ["a", "b"]
y = ["c", "d"]
z = {'x': x, 'y': y}
使用词典可能更适合您的问题。然后,您可以搜索值[“ a”,“ b”]并达到名称“ x”。
答案 2 :(得分:1)
列表是python中的可变数据类型。所以
x = ["a", "b"]
python将分配一些内存并将地址存储在x中。 所以x在内部类似于:
<List with data at 0x123456789>
当您创建z时,python分配一些内存并将地址存储在z中 然后,它将x和y的地址存储在z的内存中。 所以z在内部:
[<List with data at 0x123456789>, <List with data at 0x987654321>]
现在您可以看到没有变量名称的信息,该变量也存储了地址0x123456789
摘要:您无法获取列表对象的变量名。
答案 3 :(得分:0)
也许只是将列表名称放在每个列表的开头,然后使用z [0] [0]来获取名称?