首页 > 解决方案 > 如何检查字符串列表中是否存在字符并返回特定值?

问题描述

我需要检查嵌套在另一个列表中的每个字符串列表中是否存在特定字符,并根据此信息返回一个数字(1、2、3 或 4)。该数字表示该字符在每个列表的特定字符串中的存在。

所以这是我(长)清单的一部分

 mylist = [['m ˈ a n'],
 ['ʔ ˈ aɪ ', ' n ɐ'],
 ['ɡ ˈ ɔ t'],
 ['ɡ l ˈ aʊ ', ' b ə'],
 ['f ˈ aː ', ' t ɐ'],
 ['j ˈ eː ', ' m a n t'],
 ['f r ˈ ɔʏ n t'],
 ['m ˈ o ', ' m ɛ n t'],
 ['h ˈ ɛɐ'],
 ['ʔ ˈ aː ', ' b ə n t'],
 ['h ˈ a l t'],
 ['j ˈ ʊ ŋ ', ' ə'],
 ['b r ˈ uː ', ' d ɐ'],
 ['z ˈ oː n'],
 ['k ˈ ɔ p f'],
 ['d ˈ a ŋ k'],
 ['f ˈ ɪ l m'],
 ['f ˈ a l']]

我想知道"ˈ"表示特定单词重音的字符是否出现在音节数 1、2、3 或 4 中。(在此处的示例中,您最多看到 2 个音节,因此结果应该是 1或 2,但在整个列表中也可以有 3 个或 4 个音节)。

有没有一种简单的方法可以在 Python 中检查这个字符?

标签: python

解决方案


我误解了你的问题。因此,您可以使用列表pos_lst来存储字符串编号,如下所示:

pos_lst = []
for sub_l in mylist:
    i = None
    for c, syl in enumerate(sub_l):
        if "ˈ" in syl:
            i = c; break
    pos_lst.append(c+1) # because list indices start from 0, not 1
print(pos_lst)

请注意,如果多个子字符串包含该字符,这将给出包含该字符的最后一个子字符串。这种情况下的输出是:

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

推荐阅读