我开始使用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) /