【问题标题】:How to return the list name in for loop in Python [duplicate]如何在Python的for循环中返回列表名称[重复]
【发布时间】:2021-05-03 21:28:30
【问题描述】:

我有一个这样的嵌套列表:

list1 = [1,2,3]
list2 = [4,5,6]

list_all = [list1,list2]

我的问题是在 for 循环中如何获取 list1 和 list2 作为列表的名称:

for i in list_all:
    print(list1.name,list2.name)

输出应该是这样的:

"list1",'list2'

【问题讨论】:

标签: python python-3.x list


【解决方案1】:

如果您制作列表字典,您可以提供名称

list1 = { "name": list1, "list": [1,2,3]}
list2 = { "name": list2, "list": [4,5,6]}

list_all = [list1,list2]

for i in list_all:
    print(list_all[i].name)

【讨论】:

    【解决方案2】:

    这有点复杂和低效,但它有效:

    list1 = [1,2,3]
    list2 = [4,5,6]
    list_all = [list1,list2]
    i = k = v = None 
    # we need this line to avoid "RuntimeError: dictionary changed size during iteration" so locals() will recognize them
    loc = locals().items()
    
    for i in list_all:
     for k,v in loc:
      if v is i and k != 'i':
        # if id(v) equal to id(i)
        print(k)
    

    输出将是:

    list1
    list2
    

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      相关资源
      最近更新 更多