【问题标题】:How Can I name a list inside a 'FOR' loop如何在“FOR”循环中命名列表
【发布时间】:2012-02-20 03:34:59
【问题描述】:

我必须使用这样的 FOR 循环

x=0
for i in range(22):
    SOME OPERATION

然后将操作的值存储在 [0,0,0,0,0] 之类的列表中 根据操作结果 +1 将对列表中的 5 个值中的任何一个进行。

问题是我每次迭代都需要一个列表。您能否帮我命名/初始化一个名称为 list1、list2 等的列表,直到列表 22。所以我可以继续 +1 以列出五个值中的任何一个

AK

【问题讨论】:

  • 请详细说明(编辑您的帖子)您真正想要做什么。很难理解。如果您需要定义任意数量的事物,请使用字典或列表列表。例如,myLists[i] = [0,0,0,0,0]。否则请详细说明,因为几乎可以肯定有更好的方法可以做到这一点,甚至可能是单线。
  • 这些列表的自我相似度如何?您有什么想要提及的示例操作吗?

标签: python list for-loop python-3.x


【解决方案1】:
for i in range(22):
    myLists[i] = [0,0,0,0,0]

【讨论】:

  • 嗨,忍者,我的方法出现以下错误: Traceback(最近一次调用最后一次):文件“”,第 2 行,在 pos[i] =[0,0,0,0,0] IndexError: 列表赋值索引超出范围
  • @AtulKakrana:此方法假定您已将数组初始化为某些东西,例如myLists = [None for _ in range(22)],虽然我仍然不知道你在做什么,所以不能给出具体的建议。
【解决方案2】:

如果您需要一组命名列表,那么听起来您需要一本字典:

myLists = dict()
for x in range(22):
    myLists[ 'list%d' % x ] = [0,0,0,0,0]

如果您更愿意使用列表列表:

myLists = list()
for x in range(22):
    myLists.append( [0,0,0,0,0] )

【讨论】:

    【解决方案3】:

    你可以在顶部定义一个lists变量:

    lists = [list1, list2, ... ,list22]
    
    x=0
    for i in range(22):
        SOME OPERATION against lists[i]
    

    【讨论】:

      【解决方案4】:

      强制单行:

      (其中operation() 返回[0,0,0,0]

      字典

      mydict = {num : operation() for num in range(22)}
      
      {0: [0, 0, 0, 0], 
       1: [0, 0, 0, 0], 
       2: [0, 0, 0, 0], 
       3: [0, 0, 0, 0], 
       ...,     
       21: [0, 0, 0, 0]}
      

      列表

      mylist = [operation() for num in range(22)]
      
      [[0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 0],
       ...,
       [0, 0, 0, 0]]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        • 2018-06-04
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2012-12-06
        • 2021-03-31
        相关资源
        最近更新 更多