这个问题以前毫无疑问被问过,但我不完全确定如何去寻找它(因为我不知道它叫什么)。所以提前道歉。
唉,我的问题是我有很多东西
for i in range(1000):
M = subParts[0].get(parts['thing'][i])
每个
M
都是一个对象,它包含了关于这个模型的很多信息,现在我的工作是在这个对象上调用四个单独的函数,这样这些函数就可以返回四个简单的数字:for i in range(1000):
M = subParts[0].get(parts['thing'][i])
M.getItem1()
M.getItem2()
M.getItem3()
M.getItem4()
每个返回一个数字,例如。
4.5
5.7
3.7
2.9
因此,我的问题是,什么是有效的方法?上面的方法很难看,但很有效,但必须有更有效的方法。所以我想把所有的东西都藏在字典里
myDict = { 0 : [4.5,5.7,3.7,2.9], ... , 999 : [2.5,3.7,5.7,2.9] }
谢谢。
最佳答案
假设parts['thing']
是一个可以迭代的有序序列,您可以使用map
对subParts[0].get
的每个元素调用parts['thing']
,因此可以这样迭代每个M
对象:
for M in map(subParts[0].get, parts['thing']):
...
注意,这将在python 2中返回一个列表,因此最好使用
itertools.imap
。把它放到听写理解中,你只需要:
stuff = {i:[M.getItem1(),
M.getItem2(),
M.getItem3(),
M.getItem4()]
for i,M in enumerate(map(subParts[0].get, parts['thing']))}
关于python - 从python中的对象返回多个实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39006706/