【问题标题】:Flatten a lists of list with some lists have multiple values - python [duplicate]用一些列表展平列表有多个值 - python [重复]
【发布时间】:2018-12-15 12:08:28
【问题描述】:

我正在浏览这个post,它有一些很好的答案,但它不适用于我的情况。

我有一个这样的列表:

my_list = [['Hi'],['Hello'],['How', 'are'], ['you']]

我做了扁平化,我得到了这个,

my_flat_list = [i[0] for i in my_list]
my_flat_list
>>['Hi', 'Hello', 'How', 'you']

如果我不使用i[0],我会再次进入列表格式。

我需要的输出是:

['Hi', 'Hello', 'How are', 'you']

我也厌倦了这个post 使用itertools 仍然没有得到我想要的结果。

我怎样才能得到我的输出?

【问题讨论】:

  • 看起来你想要[' '.join(i) for i in my_list]
  • @Poshi,不,不是骗子。
  • @DyZ 问题,你是如何搜索那个 SO 帖子的?我一直在谷歌搜索,没有发现任何与我的情况有关的东西,然后我发布了这个问题。有诀窍吗?可能总是使用涉及的关键字?还是别的什么?
  • @user9431057 我通过谷歌搜索“如何在 python 中加入字符串的子列表”发现了这个骗局。虽然是的,但这最终会展平列表,但大多数列表展平问题不会加入子列表的元素,这就是您无法找到它的原因。
  • 乐于助人。您提出了一个包含所有必要信息的好问题,请继续关注!

标签: python python-3.x list


【解决方案1】:

str.join 将帮助您将每个子列表转换为单个字符串:

In [1]: [' '.join(sublist) for sublist in my_list]
Out[1]: ['Hi', 'Hello', 'How are', 'you']

【讨论】:

    【解决方案2】:

    你需要加入内部列表:

    list(map(" ".join, my_list))
    #['Hi', 'Hello', 'How are', 'you']
    

    【讨论】:

    • join 有很大帮助。太棒了!
    猜你喜欢
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2012-09-10
    • 2014-05-03
    • 1970-01-01
    相关资源
    最近更新 更多