【问题标题】:How to compare a substring with a list of elements in Python?如何将子字符串与 Python 中的元素列表进行比较?
【发布时间】:2021-04-19 11:23:16
【问题描述】:

我正在尝试比较从读取 .txt 文件中获得的字符串中的子字符串,并将其与列表中的元素进行匹配。

.txt 文件中的字符串如下:

 1. Blood 75.6 gm% 12-14    
 2. Rash 15.4 tm/m 54-89

我有一个名为 data 的列表,其中包括作为字符串中第一个单词出现的单词。 所以,

data = ['blood', 'Rash']

f = open('my.txt', r)
for x in f:
    if x.find(str(data)):
    # Do something

如何匹配这两者,然后对其进行操作?

【问题讨论】:

  • 也就是说,你想确定从文本文件中读取的每一行是否包含“血”或“皮疹”?
  • @PaulBrink 是的。每行都有一个关键字,我试图通过将其定义到一个列表中来匹配它,它始终是字符串中出现的第一个单词。

标签: python string list substring


【解决方案1】:
with open("my.txt") as f:
    for line in f:
       for i in data:
           if i in line:
               do_operation()

这是你要求的吗?

【讨论】:

    【解决方案2】:

    您可以使用any 运算符,如果f 行中的任何单词与data 中的任何string 匹配,则该运算符将返回true。

    f = open('my.txt', r)
    for x in f:
        if any(y in x for y in data):
            #Do operation
    

    或者如果您想检查每一行是否在data 中至少包含一个string。您可以使用all 运算符,如果data 中的所有行都包含string,它将返回true:

    f = open('my.txt', r)
    
    if all(any(y in x for y in data) for x in f):
       #Do operation
    

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      相关资源
      最近更新 更多