连接两个列表[关闭]

Posted

技术标签:

【中文标题】连接两个列表[关闭]【英文标题】:Concatenating two lists [closed] 【发布时间】:2019-03-23 19:51:42 【问题描述】:

我有一个如下列表(希望我说的列表是正确的):

['[175', '178', '182', '172', '167', '164]', "['b']"]

如何连接这两个列表?也就是说,有一个如下所示的列表:

[175, 178, 182, 172, 167, 164, b]

有什么想法吗?

谢谢。

【问题讨论】:

'[175 中的这些[s 在做什么? 这是输出的一部分,源于:X = np.array([[i[0],i[1]] for i in images]) 请注意,您的输入不是两个列表。它是一个字符串列表。 @Simplicity:看起来您将 numpy 数组转换为字符串。请不要那样做:你在这里“丢失信息和结构”,使得重建数组变得更加困难。 【参考方案1】:

首先,请注意这不是一个列表列表,而只是一个字符串列表,当它们连接起来时,可能看起来像一个或多个(嵌套)列表,尤其是第一个中的 []和最后一个元素。因此,您可以将这些字符串与, 连接到一个实际表示一对或列表元组的字符串,然后将evalast.literal_eval 连接到这些字符串中。然后只需使用列表推导来展平实际的列表列表。

>>> lst = ['[175', '178', '182', '172', '167', '164]', "['b']"]

>>> ','.join(lst)
"[175,178,182,172,167,164],['b']"

>>> ast.literal_eval(','.join(lst))
([175, 178, 182, 172, 167, 164], ['b'])

>>> [x for sub in ast.literal_eval(','.join(lst)) for x in sub]
[175, 178, 182, 172, 167, 164, 'b']

【讨论】:

你有一双锐利的眼睛......【参考方案2】:

列表连接与 + 一起使用 所以...

lsts = ['[175', '178', '182', '172', '167', '164]', "['b']"]
new_lsts = []
for i in lsts:
  new_lsts += i

这个类似的问题也被问过很多次了。

Here

和here

可能还有好几次

【讨论】:

我不认为这会连接“项目”? 如果您的列表实际上是列表列表而不是字符串列表,则会这样做【参考方案3】:

在python中你可以使用+来连接它们:

a = [2,5,6]
b = [6,1,4]
c = a+b
print(c)

【讨论】:

为什么要投反对票?它只是没有在列表列表上显示 for 循环,我希望 OP 能够找到它。

以上是关于连接两个列表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

比较两个通用列表C#的最快方法[关闭]

使用两个不同的列表将值添加到新列表[关闭]

Python,MYSQL 如何将两个单独列表中的两列加在一起(数字总和)到一个新列表中? [关闭]

将两个列表连接在一起

连接两个表显示 NULL [关闭]

将保存不同对象的两个不同列表组合到第三个列表中,将对象作为两个列表的交叉连接