Python在字符串列表中搜索模式

时间:2016-04-19 03:16:13

标签: python string python-2.7 python-3.x select

我在Python中有以下字符串列表:

         SS = ['T', 'Q', 'T', 'D', 'Q', 'D', 'D', 'Q', 'T', 'D']

无论如何我可以检查有多少Ts直接跟随D,所以在这种情况下,有2个Ts(第二个和最后一个T)符合要求。

我尝试了这个但是它没有工作,有什么建议吗? THX!

            if ['T','Q'] in SS:
                 print ("yes")

4 个答案:

答案 0 :(得分:4)

您可以迭代地检查下一个字符是否为D并执行某种计数器。这(可能)是最简洁的,尽管可能不是最好的方式。

SS = ['T', 'Q', 'T', 'D', 'Q', 'D', 'D', 'Q', 'T', 'D']
print("".join(SS).count("TD"))

结果:

2

答案 1 :(得分:3)

SS = ['T', 'Q', 'T', 'D', 'Q', 'D', 'D', 'Q', 'T', 'D']
print zip(SS, SS[1:]).count(('T', 'D'))

答案 2 :(得分:2)

一系列单字符字符串既可以表示为给定的list,也可以表示为多字符字符串,主要区别在于list方法与str方法(还有tuple类型)和可变性。

>>> SS = ['T', 'Q', 'T', 'D', 'Q', 'D', 'D', 'Q', 'T', 'D']
>>> SS_joined = ''.join(SS)
>>> 'TQ' in SS_joined
True

答案 3 :(得分:0)

你永远都可以。

>>> import re
>>> SS = ['T', 'Q', 'T', 'D', 'Q', 'D', 'D', 'Q', 'T', 'D']
>>> new = ''.join(SS)
>>> len(re.findall('TD',new))
2