【问题标题】:How to create a function in Python that makes objects (i.e lists)如何在 Python 中创建一个创建对象(即列表)的函数
【发布时间】:2012-06-05 13:49:18
【问题描述】:

我找不到可以在这方面帮助我的指南。所以我希望有人可以帮助我解释这种用 Python 编程的方法。我正在尝试编写如下代码:

def Runner():
    for G in range(someRange):
        makeListObjectcalled 'ListNumber'+'G'
        ListNumberg.append(G*500000 or whatever)
        print ListNumberG 
    #so I would have a someRange amount of lists 
    #named 0,1,2,3...(up to someRange) I could look through

我认为它可以通过类来完成(事实上我猜这就是它们的用途......)但我不确定。有人可以帮我澄清一下吗?

【问题讨论】:

  • 最重要的问题是你为什么认为你需要这样做,名字是什么意思?因此,提供更多上下文可能会有所帮助。 wez 的答案或 Eric Finn 的答案都可能是正确的,这取决于这一点。如果名称有意义,请使用字典。如果您只需要一堆不同的列表(或特定顺序的列表),请使用 Eric 提供的列表解决方案。

标签: python function list generator


【解决方案1】:

看起来你真正想要的是一个列表。

def Runner():
    Lists = []
    for G in range(someRange):
        Lists[G] = []
        Lists[G].append(G*500000 or whatever)
        print Lists[G]
        #This way, you have Lists[0], Lists[1], ..., Lists[someRange]

【讨论】:

  • 确实!我无法准确指出如何用一个简单的步骤来总结它。谢谢你们!
【解决方案2】:

您希望动态创建存储值数组的列表类型变量。

一种更简单更好的方法(比处理未知变量名)是使用字典来保存您的列表,这样您就可以通过名称/键来查找它们:

(伪代码,不要带我的 Python 解释器)

# create a dictionary to store your ListNumberG's
dict_of_lists = {}

# down the line in your loop, add each generated list to the dict:
dict_of_lists['ListNumberG'] = ListNumberG

稍后您可以通过它的名称/键找到一个列表

print(dict_of_lists['ListNumberG'])

或遍历它们

for idx in range(bestguess):
    print(dict_of_lists['ListNumber%s' % (idx,)])

【讨论】:

  • 这实际上帮助了我解决我正在解决的另一个问题,谢谢你伟大的时间 Wez。你让我的一天变得非常富有成效^.^
猜你喜欢
  • 1970-01-01
  • 2021-04-10
  • 2010-09-25
  • 2022-11-05
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多