否-列表推导旨在与具有返回值的函数一起使用。这是它们的语义定义的方式:
列表理解为创建列表提供了一种简洁的方法,而无需使用map(),filter()和/或lambda。所得的列表定义往往比使用这些构造构建的列表更清晰。每个列表理解都包含一个表达式,后跟一个for子句,然后是零个或多个for或if子句。结果将是一个列表,该列表是通过在紧随其后的for和if子句的上下文中评估表达式而得出的。
读完此书后,应该很清楚,“对没有返回值的函数的列表理解”是矛盾的。
只需使用一个for
循环就可以实现“一次性”:
import random
L = []
for x in range(5):
l = range(5)
random.shuffle(l)
L.append(l)
干净简单。您的shuffled
函数也很好, 可以 在列表理解中使用。