用于在python中创建X * Y 2维列表的通用代码

时间:2017-11-13 04:58:12

标签: python

我正在尝试使用三个参数创建一个函数:x,y,val将返回一个包含x行和y列的二维数组,并且每个值都初始化为val。 e.g。

myList = createList(2,3,"-")

会创建结果列表: [[“ - ”,“ - ”,“ - ”]  [“ - ”,“ - ”,“ - ”]]

到目前为止,我为此创建了以下函数,但它将所有初始值放在一个列表中:

def createList(x,y,val):
    myList=[]
    for i in range(x):
        for j in range(y):
            myList.append(val)
    return myList

print(createList(2,3,"-"))

创建输出:[' - ',' - ',' - ',' - ',' - ',' - ']

2 个答案:

答案 0 :(得分:2)

你可以简单地使用python中的list comprehension在python中创建一个2D数组。

def create2DArray(x, y, val):
    return [[val for i in range(y)] for j in range(x)]

myList = create2DArray(2, 3, '-')
print(myList)

答案 1 :(得分:0)

您可以使用列表推导来执行此操作。 首先,创建一个x列表列表:

[[] for i in range(x)]

您还可以创建y val列表:

[val for j in range(y)]

将这些结合起来会给你:

createList(x,y,val):
    return [["-" for j in range(y)] for i in range(x)]