小编Dmi*_*ich的帖子

可以在其方法中使用列表推导衍生物吗?

请考虑以下代码:

a = [... for i in input]
i = a.index(f(a))
Run Code Online (Sandbox Code Playgroud)

我想知道我是否能够做一个单行班.显而易见的尝试是:

i = [... for i in input].index(f([... for i in input]))
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案需要生成两次列表.不太明显的尝试是:

i = [ a.index(f(a)) for a in [[... for i in input],] ]
Run Code Online (Sandbox Code Playgroud)

这诀窍,但使代码真的很奇怪.

这让我想到可能有可能以某种方式使用列表理解生成的列表,在自己的方法调用中.有点像(两者都不起作用,显然):

i = [... for i in input].index(f(_))
# or
i = [... for i in input].index(f(self))
Run Code Online (Sandbox Code Playgroud)

可以吗?

python list-comprehension

5
推荐指数
2
解决办法
106
查看次数

python中的字典理解太全面了

使用python2.7我发现了一个奇怪的时间执行情况:

data = dict( zip( a[0].split( ':' ), a[1].split( ':' ) ) )

data = { name: value for name, value in zip(a[0].split( ':' ), a[1].split( ':' )) }
Run Code Online (Sandbox Code Playgroud)

这两个电话对我来说似乎完全一样,但是,我发现字典理解版本的速度提高了约4% - 不是太多,而是非常稳定.

这是真的,如果是的话,为什么?还是只是我的想象力?

python performance dictionary dictionary-comprehension

2
推荐指数
1
解决办法
871
查看次数