代码之家  ›  专栏  ›  技术社区  ›  Simplicity

连接两个列表[已关闭]

  •  -1
  • Simplicity  · 技术社区  · 8 年前

    我有一个列表,如下所示(我希望我说的列表是对的):

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

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

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

    有什么想法吗?

    谢谢

    3 回复  |  直到 8 年前
        1
  •  3
  •   tobias_k    8 年前

    首先,请注意,这不是一个列表列表,而是一个字符串列表,当连接起来时,这些字符串可能看起来像一个或多个(嵌套的)列表,尤其是那些 [ 和 ] 在第一个和最后一个元素中。因此,你 能够 将这些字符串与 , 到实际表示列表对或元组的字符串,然后 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
  •  0
  •   Rohan D'Souza    8 年前

    列表连接与+ 所以

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

    同样,这里也曾多次提出过类似的问题。

    Here

    和 here

    可能还有几次

        3
  •  -1
  •   BladeMight    8 年前

    在python中,您可以使用 + 要解决这些问题:

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