python - 如何检查字符串列表中是否存在字符并返回特定值?
问题描述
我需要检查嵌套在另一个列表中的每个字符串列表中是否存在特定字符,并根据此信息返回一个数字(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 中检查这个字符?
解决方案
我误解了你的问题。因此,您可以使用列表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]
推荐阅读
- python - 创建 db.connection 自定义类包装器,不断收到“django.db.utils.InterfaceError: cursor already closed”
- plot - 如何在 Tableau 中为区号添加筛选器时创建计算以查看差异?
- javascript - 使用 JavaScript 向可悬停元素添加类
- java - 如何在@RestResource 中将“路径”设为空以使端点仅作为 /search{?name}
- java - 如何在此代码中防止或处理 java.lang.ArrayIndexOutOfBoundsException?
- python - 如何在 Python 中对列表中的元素进行分组?
- java - 如何在参数内没有Node的情况下编写depth()方法?
- jquery - 如何仅使水平滚动条从右向左滚动,而不使同一div的垂直滚动条
- php - 使用PHP获取各种ID的SQL数据
- docker - 在 docker-compose 中开发。让容器识别代码更改