我这里有一个“最佳实践”问题。我以一种可能不打算使用的方式使用 map - 使用列表的元素来更改不同对象的状态。最终列表输出实际上并没有改变。这样合适吗?
例如:
class ToBeChanged(object):
def __init__(self):
self.foo_lst = [1,2,3,4]
def mapfunc(self, arg):
if arg in ['foo', 'bar']:
self.foo_lst.append(arg)
else:
pass
test = ToBeChanged()
list_to_map = [1,2,37,'foo']
map(lambda x: test.mapfunc(x), list_to_map)
最佳答案
不合适。在 Python 2 中,您将创建一个与 list_to_map
长度相同的新列表,并立即丢弃它;浪费! lambda
甚至使它变得更加复杂。
最好使用 for 循环:
for x in list_to_map:
test.mapfunc(x)
更简洁易读。
如果您仍在考虑在 Python 3 中使用它(通过强制以某种方式评估惰性对象),请考虑那些将维护您的代码的人; map
给人的印象是您想从列表中创建一个新的可迭代对象。
关于python - 使用 map(function, list) 来转换对象而不返回列表是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42226067/