我在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")
答案 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