如何获得嵌套列表的名称?



我想知道这样的事情是否可能。让我们假设这段代码:

area = ["A","B","C"]
level = ["L1","L2","L3"]
sector = [area, level]
print(sector)
print(sector[1])

输出:

  • Print 1:[['A', 'B', 'C'], ['L1', 'L2', 'L3']]
  • 打印2:['L1', 'L2', 'L3']

第一个打印对我来说是OK的。它显示列表及其元素。

然而,对于第二次打印,我希望使用作为列表的名称而不是它的元素。在本例中,level

这可能吗?

你可以使用字典:

di = {"area": ["A", "B", "C"], "level": ["L1", "L2", "L3"]}
di["area"]  

输出:

["A", "B", "C"]

您可以比较id:

for sec in sector:
if id(sec) == id(area):
print('area')
elif id(sec) == id(level):
print('level')

等。

然而,这是一种可疑的方式。你为什么需要这个?

让它成为一个Dictionary of Lists而不是List of Lists:

area = ["A","B","C"]
level = ["L1","L2","L3"]
sectors = {
"area":  area,
"level": level
}
print(sectors["level"])
print(sectors["area"])
""" some other useful dict methods below """
print(sectors.keys())
print(sectors.values())
print(sectors.items())

您可以根据您的用例使用字典。

可以将变量名作为键,列表作为值。

试试这个:

area = ["A","B","C"]
level = ["L1","L2","L3"]
sector = {"area":area, "level":level}
print(list(sector.values()))
print(list(sector.keys()))

输出:

[['A', 'B', 'C'], ['L1', 'L2', 'L3']]
['area', 'level']

最新更新