连接两个列表[关闭]
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】:
首先,请注意这不是一个列表列表,而只是一个字符串列表,当它们连接起来时,可能看起来像一个或多个(嵌套)列表,尤其是第一个中的 [
和 ]
和最后一个元素。因此,您可以将这些字符串与,
连接到一个实际表示一对或列表元组的字符串,然后将eval
或ast.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 能够找到它。以上是关于连接两个列表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章