如何在列表列表中查找列表名称而不是其值?

时间:2018-12-20 15:34:29

标签: python python-3.x list

我正在尝试在列表列表中查找列表的名称(“列表列表”是否有特定名称?)。

例如,我有以下列表:

x= ["a","b"]
y= ["c","d"]
z= [x,y] 

如果我现在想知道列表“ z”中第一个列表的名称是什么,我会尝试这样做:

print(z[0])

但是我得到的不是x,而是x的值(“ a”,“ b”)

  • 如何获取输出“ x”?

4 个答案:

答案 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]来获取名称?