for循环,迭代和调用

时间:2015-02-23 10:20:34

标签: python python-2.7

我正在编写一些代码并遇到以下循环。是否有更多的pythonic写作方式。

# obj_list = list of tuples [(someint, object)...]
for a, obj in obj_list:
    obj.callable()

2 个答案:

答案 0 :(得分:5)

不是,它看起来很好。您可以使用a而不是_来表示该值未被使用,但这只是一个非常小的问题。

如果obj.callable()要返回一个值,并且您想存储值,则可以使用列表推导:

results = [obj.callable() for _, obj in obj_list]

results将包含每次调用obj.callable()时返回的值列表。

答案 1 :(得分:0)

不是真的。可能会有更多的pythonic"方式,但他们会牺牲可读性或做一些稍微不同的事情。

E.g。你可以列出理解:

returns = [ x.callable() for dummy, x in obj_list]

但它看起来几乎完全相同并存储结果(可能不合适)。

您可以使用map,但是取出元组所需元素并在其上调用方法的函数虽然可能,但可能看起来像混淆。