我头痛,字典上写着:
{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] =='+'])
但我只得到一个包含两个值(两个字符串开关)的列表。。 我尝试过改变'+'和'-'字符,但没有成功,有什么建议吗?你知道吗
您可以使用字典理解功能构建字典,并计算字典中每个条目的值更改的次数:
或者如果你喜欢^{} :
详细信息
为了检测每个列表中元素的变化,您可以将其元素与列表的滞后版本进行比较,这可以通过压缩列表的两个片段来完成
zip(d[k][1:], d[k][:-1])
。你知道吗例如,对于键
a
:现在只需使用生成器表达式,每次元组中的值不同时添加
1
:你不需要过滤。数一数groupby:
相关问题 更多 >
编程相关推荐