相关疑难解决方法(0)

列表理解条件中的`elif`

我们可以elif在列表理解中使用吗?

示例:

l = [1, 2, 3, 4, 5]

for values in l:
    if values==1:
        print 'yes'
    elif values==2:
        print 'no'
    else:
        print 'idle'
Run Code Online (Sandbox Code Playgroud)

我们能否elif以类似于上面代码的方式包含我们的列表理解?

例如,答案如下:

['yes', 'no', 'idle', 'idle', 'idle']
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只使用ifelse列表理解.

python list

99
推荐指数
3
解决办法
6万
查看次数

为什么列表理解比附加到列表要快得多?

我想知道为什么列表理解比附加到列表要快得多.我认为差异只是表达,但事实并非如此.

>>> import timeit 
>>> timeit.timeit(stmt='''\
t = []
for i in range(10000):
    t.append(i)''', number=10000)
9.467898777974142

>>> timeit.timeit(stmt='t= [i for i in range(10000)]', number=10000)
4.1138417314859
Run Code Online (Sandbox Code Playgroud)

列表理解速度提高了50%.为什么?

python list-comprehension list python-2.7 python-3.x

36
推荐指数
3
解决办法
2万
查看次数