【问题标题】:Create new List object in python在 python 中创建新的 List 对象
【发布时间】:2009-09-24 08:42:50
【问题描述】:

我是python的初学者。我想在 python 中创建新的 List 对象。

我的代码:

recordList=[]

mappedDictionay={}

sectionGroupName= None

for record in recordCols:
    item = record
    print item

    if not sectionGroupName == record[0]:
        sectionGroupName = record[0]
        del recordList[0:] # Here I want to create new list object for recordList
        recordList.append(item)
        mappedDictionay[sectionGroupName] = recordList
    else:
        recordList.append(tempItem)

【问题讨论】:

  • 你能说明你从什么数据结构开始,你想以什么结束吗?很可能有更好的方法来做你想做的事,但我无法从你的示例代码中解开它。

标签: python list


【解决方案1】:

理解您的问题并不容易,尤其是因为您的代码丢失了格式,但您可以很容易地创建新的列表对象。下面将一个新的列表对象分配给变量recordList:

recordList = list()

你也可以使用

recordList = []

[] 和 list() 在这种情况下是等价的。

【讨论】:

    【解决方案2】:

    Python 是garbage-collected。做吧

    recordList = []
    

    你会有一个新的空列表。

    【讨论】:

      【解决方案3】:

      不要使用del。时期。这是一个“高级”的东西。

      from collections import defaultdict
      
      mappedDictionay= defaultdict( list ) # mappedDictionary is a poor name
      sectionGroupName= None
      
      for record in recordCols:
          mappedDictionay[record[0]].append( record )
      

      【讨论】:

      • @crk:如果有用,也许你应该点击接受。如果不能接受,也许你应该解释你还需要什么。
      【解决方案4】:

      您可以使用list() 或简单地使用[] 创建一个新列表。 但是,我认为您想要实现的目标可以通过使用grouby 来解决:

      from itertools import groupby
      mappedIterator = groupby(recordCols, lambda x: x[0])
      

      from itertools import groupby
      from operator import itemgetter
      mappedIterator = groupby(recordCols, itemgetter(0))
      

      如果你愿意的话。

      groupBy 函数将返回一个迭代器而不是一个字典,其中每个项目的格式为 (category, sub-iterator-over-items-in-that-category)

      如果你真的想把它转换成你代码中的字典,你可以在之后运行以下命令:

      mappedDictionary = dict(( (x[0], list(x[1])) for x in mappedIterator ))
      

      【讨论】:

        【解决方案5】:

        您要创建一个新列表吗?
        这很容易:例如,您想列出日期,请编写以下内容:

        new_list=['mon','tue','wed','thurs','fri',sat','sun']

        这里的列表名称是new_list,其中包含不同工作日的名称。

        注意:永远不要忘记使用 [ ] 括号来创建一个列表,使用 ( ) 将创建一个元组,一个非常不同的对象,而 { } 将创建一个字典对象,它会引发错误。

        【讨论】:

          【解决方案6】:

          创建新列表很容易!
          如果你希望它为空,那么只需像这样定义它:

          NameOfList = []
          

          或:

          NameOfList = list()
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-08-18
            • 1970-01-01
            • 1970-01-01
            • 2022-11-05
            • 2022-08-07
            相关资源
            最近更新 更多