【发布时间】:2014-03-15 19:36:57
【问题描述】:
我已经尝试了一段时间来解决以下问题: 我有以下格式的列表:
[[u'unicode_text', 5, 395, 2, 0, 2 .. n],
[u'unicode_text', 235, 5, 3, 3, 10 .. n],
[u'other_unicode_text', 3, 65, 28, 16, 52 .. n],
...
[u'unicode_text', 95, 5, 8, 7, 38 .. n]]
我正在尝试创建一个新列表,其中将包含由列表中的文本元素分组的数字的总和。上面的结果将如下所示:
[[u'unicode_text', 335, 405, 13, 10, 50 .. n],
[u'other_unicode_text', 3, 65, 28, 16, 52 .. n]]
我尝试了很多方法,但无法找到一个优雅的解决方案。 Zip 不适用于 unicode 文本,而 itertools groupby 则适用于字典。
【问题讨论】:
-
itertools.groupby适用于任何可迭代对象。 -
OrderedDict 有效,但它给了我一个分组列表的列表。还有其他方法吗(不像 ['txt', [2,3]] 而是 ['txt', 2, 3])。我可能会错过一些东西。谢谢
-
你可以使用:
['txt'] + [2, 3]