【问题标题】:merging the inside elements of a list合并列表的内部元素
【发布时间】:2021-07-21 15:09:08
【问题描述】:

我有两个列表:

a=[ 'ness' , 'ul' , 'ind' , 'be' ]

b=[ '善良' , 'ameri can' , 'ind ian' , 'be cause' , 'be lieve' , 'bo ring' ]

我想编写一个程序来比较这些列表,如果列表“b”的元素由列表“a”的元素组成,那么程序会将其合并。对于这个例子,输出应该是:

output=[ '善良' , 'ameri can' , 'indian' , 'because' , 'believe' , 'bo ring' ]

我试图找到两个列表的交集,然后开始合并,但没有成功。请你帮帮我好吗?

【问题讨论】:

  • 您能否编辑您的帖子并进一步解释“列表'b'的元素由列表'a'的元素组成”的意思,因为这与您的输出之间存在矛盾跨度>
  • 您可以只在输出中拆分一个值,然后测试任何一个拆分值是否在a 列表中。
  • 抱歉我的英语不好,谢谢大家的帮助。

标签: python string list intersection word


【解决方案1】:

您可以将set 与列表理解一起使用

a=['ness','ul','ind','be']
b=['kind ness','ameri can','ind ian','be cause','be lieve','bo ring']

[i.replace(' ', '') if set(i.split(' ')).intersection(a) else i for i in b]
#['kindness', 'ameri can', 'indian', 'because', 'believe', 'bo ring']

【讨论】:

    【解决方案2】:

    这应该可行:

    output = [(phrase.replace(' ', '') 
                   if any(word in phrase for word in a) 
                   else phrase
              ) for phrase in b]
    # ['kindness', 'ameri can', 'indian', 'because', 'believe', 'bo ring']
    

    【讨论】:

      猜你喜欢
      • 2020-09-09
      • 2014-03-19
      • 2016-08-15
      • 2021-06-15
      • 2014-06-23
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多