我想计算使用python在给定列表中相互跟随的单词的出现次数。 E.g。
my_list = ['ABC', 'DEF', 'PQR', 'ASD', 'ABC', 'DEF', 'ZXC', 'ABC', 'PQR']
在上面的列表中,'ABC'
后跟'DEF'
的次数为2
。
请帮助我。 谢谢。
答案 0 :(得分:4)
执行此操作的一种非常有效的方法可能是:
count = 0
for first,second in zip(my_list,my_list[1:]):
if first == 'ABC' and second == 'DEF':
count += 1
或使用sum(..)
count = sum(1 for first,second in zip(my_list,my_list[1:]) if first == 'ABC' and second == 'DEF')
或者正如@khelwood所说,你可以利用布尔的int(..)
返回0
和1
的事实:
count = sum(first == 'ABC' and second == 'DEF' for first,second in zip(my_list,my_list[1:]))
答案 1 :(得分:3)
直接方式不涉及为成对迭代创建额外切片,只需使用索引:
sum(1 for index in range(len(my_list) - 1)
if my_list[index] == 'ABC' and my_list[index + 1] == 'DEF')
或者,有点短(感谢@khelwood):
sum(my_list[index] == 'ABC' and my_list[index + 1] == 'DEF'
for index in range(len(my_list) - 1))
或者,没有sum()
并且展开了:
c = 0
for index in range(len(my_list) - 1):
if my_list[index] == 'ABC' and my_list[index + 1] == 'DEF':
c += 1
或者:
c = 0
for index in range(len(my_list) - 1):
c += my_list[index] == 'ABC' and my_list[index + 1] == 'DEF'
相互之间的相关材料: