作为思想实验,我不得不问自己(显然是你),因为我不得不频繁地键入这两行。可以压缩成一行吗?
我有各种具有功能的类。这些类的对象不可避免地会出现在列表中。我经常必须使用枚举值为列表的每个项目调用一个函数。是否有一个干净的单线解决方案?还是只坚持尝试和真实?
for choice, action in enumerate(availableActions, 1):
action.show(choice)
我尝试了一些列表理解都没有用。
正如几个人已经指出的那样,您最初的枚举方法是通常接受的语法。但是,如果您想将该代码缩短为1行,则可以通过列表理解来完成。以下是一些示例:
# Original method
for choice, act in enumerate(a, 1):
act.show(choice)
# 1 line version without unpacking tuple
[e[1].show(e[0]) for e in enumerate(a, 1)]
# 1 line version with tuple unpacking
[e.show(i) for i, e in enumerate(a, 1)]
我希望这会有所帮助!