Los*_*_DM 15 python list-comprehension
我想知道如何在列表推导中执行多个命令.
你能给我一个简单的例子:
[print ("bla1") and print ("bla2") for i in list]
Run Code Online (Sandbox Code Playgroud)
所以对于4长度4的列表,我会:
bla1
bla2
bla1
bla2
bla1
bla2
bla1
bla2
Run Code Online (Sandbox Code Playgroud)
相反,我没有在文档中轻易找到它.(如果你能看到一个明显的原因,我没有,并可以让我知道我应该如何搜索更好的东西).
编辑:好的,根据评论,这是一个非常糟糕的例子.我有兴趣从旧的创建一个新的,但我觉得我需要两个命令来做到这一点.(当然不是简单的印刷品).例如.我有一个列表列表,我想创建一个列表,该列表是操作子列表的结果.
Pet*_*rin 28
不要将list comprehension用于命令.列表推导用于创建列表,而不是用于命令.使用普通的旧循环:
for i in list:
print('bla1')
print('bla2')
Run Code Online (Sandbox Code Playgroud)
列表理解是充满独角兽和巧克力的奇妙事物,但它们不是一切的解决方案.
Aha*_*our 13
您可以使用元组来完成这样的工作:
[(print("bla1"), print("bla2")) for i in list]
Run Code Online (Sandbox Code Playgroud)
它的工作正常.
在某些情况下,调用包含两个语句的函数可能是可以接受的。
def f():
print("bla1")
print("bla2")
[f() for i in l]
Run Code Online (Sandbox Code Playgroud)
也可以向函数发送参数。
def f(i):
print("bla1 %d" % i)
print("bla2")
l = [5,6,7]
[f(i) for i in l]
Run Code Online (Sandbox Code Playgroud)
输出:
bla1 5
bla2
bla1 6
bla2
bla1 7
bla2
Run Code Online (Sandbox Code Playgroud)