我开始使用python,我正在尝试使用一个二维列表,我最初在每个地方都用相同的变量填充。我想出了这个:
def initialize_twodlist(foo): twod_list = [] new = [] for i in range (0, 10): for j in range (0, 10): new.append(foo) twod_list.append(new) new = []
它给出了预期的结果,但感觉像是一种解决方法。有没有更简单/更短/更优雅的方法来做到这一点?
Python中经常出现的一种模式是
bar = [] for item in some_iterable: bar.append(SOME EXPRESSION)
这有助于激发列表理解的引入,它将该片段转换为
bar = [SOME_EXPRESSION for item in some_iterable]
它更短,有时更清晰。通常,您会养成识别这些的习惯,并经常用推导式替换循环。
您的代码两次遵循此模式
twod_list = [] \ for i in range (0, 10): \ new = [] \ can be replaced } this too for j in range (0, 10): } with a list / new.append(foo) / comprehension / twod_list.append(new) /