我头疼,字典是这样的:
{a: ['+','+','-','-','+','-','-','+'],
b: ['+','+','+','-','-','+','+','+','-'],
c: ['-','-','-','+','+','+']}
我想知道值的字符串改变了多少次,就像这样:
a = 4
b = 3
c = 1
我尝试过使用itertools中的groupby,方法如下:
for k, v in mydict.iteritems():
print k + ' ' + str([len(list(g[1])) for g in groupby(list(v)) if g[0] =='+'])
但是我只得到了一个包含两个值的列表(两个字符串开关)。我已经尝试更改'+‘和'-’字符,但没有成功,有什么建议吗?
发布于 2019-03-19 23:56:15
你不需要过滤。只需计算groupby:
mydict = {'a': ['+','+','-','-','+','-','-','+'],
'b': ['+','+','+','-','-','+','+','+','-'],
'c': ['-','-','-','+','+','+']}
for k,v in mydict.items():
print(k + ' ' + str(len(list(itertools.groupby(list(v))))-1))
https://stackoverflow.com/questions/55244975
复制相似问题