【问题标题】:Matching characters from 2 lists with strings将 2 个列表中的字符与字符串匹配
【发布时间】:2021-08-02 20:42:15
【问题描述】:

使用python我想做以下事情

list1 = ['some text from a string (yes it is here too)', 'some more text 2', 'some more text 3 (with some parenthesis)']

list2 = ['string (yes it is here too)', 'text 2', '(with some parenthesis)']

并生成以下列表:

list3 = ['some text from a', 'some more', 'some more text 3']

在 python 3 中最好的方法是什么?

【问题讨论】:

  • 如果字符串没有括号,您想创建一个新列表并从两个列表中添加字符串?
  • list2 条目中的文本是否总是出现在相应 list1 条目的末尾?
  • 我正在寻找模式匹配特定单词并使用其中一个列表 (list2) 保留部分句子作为要从 list1 中删除的一组项目 id。希望这是有道理的!

标签: python string list match character


【解决方案1】:

如果列表 2 中的项目总是列表 1 中较短的(一部分)项目。你可以这样做:

list3 = []
for i,j in zip(list1,list2):
    list3.append(''.join(i.split(j)))

或者在一行中:

list3 = [''.join(i.split(j)) for i,j in zip(list1,list2)]

如果 list2 中的项目数不等于 list1 中的项目,则可以像这样从 list1 项目中删除 list2 项目的所有外观:

list3 = []
for i in list1:
    for j in list2:
        if j in i:
            i = ''.join(i.split(j))
    list3.append(i)

【讨论】:

  • 这是我正在处理的 2 个真实列表:
  • list1 = ['最美味的通心粉和奶酪:2:08 + 2:16(在“在这间屋子里开玩笑”后于 1:55 结束)+ 2:25 + 1:02', '南方焗豆:4:48(在“看看我们有什么”之后于 4:17 结束)+ 2:29(在她咬了一口并说“嗯”后于 0:48 结束)+ 0:42(开始在 0:10 用“所以这会很棒”;在“很快再见”之后的 0:29 结束,在她尝试吃但失败之前)']
  • list2 = ['(在“在这所房子里开玩笑”之后于 1:55 结束)','(在“看看我们有什么”之后于 4:17 结束),(在0:48 在她咬了一口并说“嗯”之后),(从 0:10 开始,以“所以这会很棒”;在“很快再见”之后的 0:29 结束,在她尝试并失败之前吃它)']
  • 上述解决方案似乎没有为 list3 返回正确的值,这很奇怪。
  • 你是对的。我编辑了它。现在检查一下。最后的代码只会从字符串的末尾删除
【解决方案2】:

试试这个自制的食谱。

list1 = ['some text from a string (yes it is here too)', 'some more text 2', 'some more text 3 (with some parenthesis)']

list2 = ['string (yes it is here too)', 'text 2', '(with some parenthesis)']
need = [[space for space in l1.split(l2) if space != ''] for l1,l2 in zip(list1,list2)]

【讨论】:

  • 它适用于第一个列表项,但不适用于我列表中的其他项目,我将列表组织如下:
  • list1 = ['最美味的奶酪通心粉:2:08 + 2:16(在“在这间屋子里开玩笑”之后的 1:55 结束)+ 2:25 + 1:02', '南方焗豆:4:48(在“看看我们有什么”之后于 4:17 结束)+ 2:29(在她咬了一口并说“嗯”后于 0:48 结束)+ 0:42(开始在 0:10 用“所以这会很棒”;在“很快再见”之后的 0:29 结束,在她尝试吃但失败之前)']
  • list2 = ['(在“在这所房子里开玩笑”之后于 1:55 结束)','(在“看看我们有什么”之后于 4:17 结束)(在 0 结束:48ish 在她咬了一口并说“嗯”之后)(从 0:10 开始,以“所以这会很棒”;在“很快再见”之后的 0:29 结束,在她尝试进食但未能进食之前它)']
猜你喜欢
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
相关资源
最近更新 更多