如何在没有for循环的情况下附加二维python列表?

Poe*_*dit 1 python arrays list append

让我们假设我有3个蟒蛇二维表(data_1data_2data_310x5尺寸)。我想从中制作一个all_data30x5尺寸的列表()。现在,我通过应用以下操作来做到这一点:

data_1 = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], ..., [46, 47, 48, 49, 50]]
data_2 = [[101, 102, 103, 104, 105], [106, 107, 108, 109, 110], ..., [146, 147, 148, 149, 150]]
data_3 = [[201, 202, 203, 204, 205], [206, 207, 208, 209, 210], ..., [246, 247, 248, 249, 250]]
all_data = []
for index, item in enumerate(data_1):
    all_data.append(item)

for index, item in enumerate(data_2):
    all_data.append(item)

for index, item in enumerate(data_3):
    all_data.append(item)
Run Code Online (Sandbox Code Playgroud)

如果我只是做这样的事情:

all_data.append(data_1)
all_data.append(data_2)
all_data.append(data_3)
Run Code Online (Sandbox Code Playgroud)

然后我得到3x10x5的列表,这不是我想要的。

那么我可以通过添加三个10x5列表而不使用任何for循环来创建30x5列表吗?

jsm*_*lka 6

您可以只extend列出。

data = []
data.extend(d1)
data.extend(d2)
data.extend(d3)
Run Code Online (Sandbox Code Playgroud)


Nik*_*dev 5

简单地写:

all_data = data_1 + data_2 + data_3
Run Code Online (Sandbox Code Playgroud)

如果要合并这些列表的所有对应子列表,可以这样写:

# function that merges all sublists in single list
def flatten(l):
    return [el for subl in l for el in subl]

# zipped - is a list of tuples of corresponding items (our deep sublists) of all the lists
zipped = zip(data_1, data_3, data_3)

# merge tuples to get single list of rearranges sublists
all_data = flatten(zipped)
Run Code Online (Sandbox Code Playgroud)