Fla*_*hDD 2 python reduce list
说我有一个项目列表,其中一些项目类似于一个点,但后来一个点后的数字不同
['abc.1',
'abc.2',
'abc.3',
'abc.7',
'xyz.1',
'xyz.3',
'xyz.11',
'ghj.1',
'thj.1']
Run Code Online (Sandbox Code Playgroud)
我想从这个列表中产生一个新的列表,它会折叠倍数但保留一些数据,即数字后缀,所以上面的列表应该产生一个新的列表
[('abc',('1','2','3','7'))
('xyz',('1','3','11'))
('ghj',('1'))
('thj',('1'))]
Run Code Online (Sandbox Code Playgroud)
我所想的是,第一个列表可以通过点分成对,但后来如何将第一部分分组而不丢失第二部分
如果这个问题是noobish,我很抱歉,并提前感谢
...哇,我没想到这么多很棒的答案,谢谢
from collections import defaultdict
d = defaultdict(list)
for el in elements:
key, nr = el.split(".")
d[key].append(nr)
#revert dict to list
newlist = d.items()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |