我有一个列表,例如
list = ['harvard', 'university of hawaii', 'harrisburg college', 'maryland college', 'Binghampton', 'shorehard university', 'amamamamha', 'shores of gold']
我想首先获取所有带有字母'ha'
的字母,然后将它们放入一个单独的列表中。
现在列表看起来像
new_list = ['harvard', 'university of hawaii', 'harrisburg college', 'Binghampton', 'shorehard university', 'amamamamha']
现在我想做的是计算每个短语中的字母数,直到字母'ha'
例如,哈佛应该为0,夏威夷大学应该为14,等等。
我找不到解决办法,所以我想知道是否有可能。
答案 0 :(得分:0)
我相信字符串index
是您想要的:
for item in list_with_ha:
index = item.index("ha")
print(f'"ha" was found at index: {index}')
该索引也是'ha'
前有多少个字符。您还可以使用find
,如果找到了您要搜索的字符串,则两者都以相同的方式工作(一个未找到则引发异常,另一个返回-1
),并且您已确保在每个字符串的某处找到'ha'
。
答案 1 :(得分:0)
your_list = ['harvard', 'university of hawaii', 'harrisburg college', 'Binghampton', 'shorehard university', 'amamamamha']
output = list(map(lambda x: x.find('ha'), your_list))
# output == [0, 14, 0, 4, 5, 8]
答案 2 :(得分:0)
您可以使用.partition("seperator")
def count_to_ha(phrase):
return len(phrase.partition("ha")[0])
用法:count_to_ha("harvard")
答案 3 :(得分:0)
此词典将清楚地打印出结果:
l = ['harvard', 'university of hawaii', 'harrisburg college', 'maryland college', 'Binghampton', 'shorehard university', 'amamamamha', 'shores of gold']
d = {}
for word in l:
d[word] = len(word.split('ha')[0])
print(d)
输出:
{'harvard': 0,
'university of hawaii': 14,
'harrisburg college': 0,
'maryland college': 16,
'Binghampton': 4,
'shorehard university': 5,
'amamamamha': 8,
'shores of gold': 14}
答案 4 :(得分:0)
如果要查找简明脚本:
list = ['harvard', 'university of hawaii', 'harrisburg college', 'maryland college', 'Binghampton', 'shorehard university', 'amamamamha', 'shores of gold']
res_list = [a.find('ha') for a in list if a.__contains__("ha")]
print(res_list)
输出:
[0, 14, 0, 4, 5, 8]
说明:
__contains__()
来检查它是否包含子字符串。find()
方法返回找到子字符串的第一个索引list comprehension
。看到这个https://realpython.com/list-comprehension-python/ 答案 5 :(得分:0)
这是三个列表:
l1 = ['harvard', 'university of hawaii', 'harrisburg college', 'maryland college', 'Binghampton', 'shorehard university', 'amamamamha', 'shores of gold']
l2 = [w for w in l1 if 'ha' in w]
l3 = [len(w.split('ha')[0]) for w in l2]
print(l1)
print(l2)
print(l3)
输出:
['harvard', 'university of hawaii', 'harrisburg college', 'maryland college', 'Binghampton', 'shorehard university', 'amamamamha', 'shores of gold']
['harvard', 'university of hawaii', 'harrisburg college', 'Binghampton', 'shorehard university', 'amamamamha']
[0, 14, 0, 4, 5, 8]