首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用groupby计算列表中的字符串开关

使用groupby计算列表中的字符串开关
EN

Stack Overflow用户
提问于 2019-03-19 23:47:53
回答 1查看 71关注 0票数 1

我头疼,字典是这样的:

代码语言:javascript
复制
{a: ['+','+','-','-','+','-','-','+'],
b: ['+','+','+','-','-','+','+','+','-'],
c: ['-','-','-','+','+','+']}

我想知道值的字符串改变了多少次,就像这样:

代码语言:javascript
复制
a = 4
b = 3
c = 1

我尝试过使用itertools中的groupby,方法如下:

代码语言:javascript
复制
for k, v in mydict.iteritems():
    print k + ' ' + str([len(list(g[1])) for g in groupby(list(v)) if g[0] =='+'])

但是我只得到了一个包含两个值的列表(两个字符串开关)。我已经尝试更改'+‘和'-’字符,但没有成功,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-19 23:56:15

你不需要过滤。只需计算groupby:

代码语言:javascript
复制
mydict = {'a': ['+','+','-','-','+','-','-','+'],
'b': ['+','+','+','-','-','+','+','+','-'],
'c': ['-','-','-','+','+','+']}

for k,v in mydict.items():
  print(k + ' ' + str(len(list(itertools.groupby(list(v))))-1))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55244975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档