一尘不染

如何在Python中初始化二维数组?

python

我开始使用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 = []

它提供了所需的结果,但感觉像是一种解决方法。有没有更简单/更短/更优雅的方式来做到这一点?


阅读 843

收藏
2020-02-21

共1个答案

一尘不染

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)                           /
2020-02-21