有没有办法制作这种pythonic。
the_list = [1,2,3,4,5]
for x in the_list
y= get_handler(x)
#do something with x and y
基本上有一种更简单的方法将get_handler放入减速中吗?
理想情况下可读的内容如下:
for x, get_handler(x) in the_list:
#do whatever
一种有效但不易读的解决方案:
the_list = [1,2,3,4,5]
for x, y in [(item, get_handler(item) for item in the_list )]:
# do something
答案 0 :(得分:2)
不,“pythonic”意味着普通的python代码看起来如何(参见gnibbler的答案:这就是“pythonic”的意思)。
如果你想要的东西能完全符合你的需要,你可以这样做:
def zipMap(func, iterable):
for x in iterable:
yield x,func(x)
然后:
for x,y in zipMap(get_handler, the_list):
...
请注意,这根本不会为您节省任何打字费用。它可以节省您输入的唯一方法是使用它来进行 currying :
def withHandler(iterable):
for x in iterable:
yield x,get_handler(x)
在这种情况下 可以保存您输入:
for x,y in withHandler(the_list):
...
因此,如果你碰巧经常使用它可能是合理的。但它不会被视为“pythonic”。
答案 1 :(得分:0)
是的,在for
行的末尾添加冒号,y
后面的空格,并使用4个空格进行缩进:)
the_list = [1,2,3,4,5]
for x in the_list:
y = get_handler(x)
# do something with x and y