|
发表于 2022-4-9 19:35:10
|
显示全部楼层
哈哈,那就"将错就错" 把它当做字符串来玩吧 ^_
- # 解决:
- myseq = """[a:1,b:2,c:3]
- [a:3,b:3,c:8]
- [a:7,c:2:m:7,r:4]
- [a:2,c:4:m:6,r:4]
- [a:3,b:2,c:7,o:5]"""
- v = [i for i in myseq.split('\n')]
- print(v)
- k = ''.join([j.split(':',maxsplit=1)[0] for i in v for j in i.split(',')]).split('[')[1:]
- print(k)
- # d = dict(zip(k, v)) # 不关心保留哪个的去重
- d = dict()
- for i,j in zip(k,v):
- d[i] = d.get(i, j) # 重复的话,取首次出现的那个
- print(d)
- print("结果:", ', '.join(d.values()))
- # ----
- ['[a:1,b:2,c:3]', '[a:3,b:3,c:8]', '[a:7,c:2:m:7,r:4]', '[a:2,c:4:m:6,r:4]', '[a:3,b:2,c:7,o:5]']
- ['abc', 'abc', 'acr', 'acr', 'abco']
- {'abc': '[a:1,b:2,c:3]', 'acr': '[a:7,c:2:m:7,r:4]', 'abco': '[a:3,b:2,c:7,o:5]'}
- 结果: [a:1,b:2,c:3], [a:7,c:2:m:7,r:4], [a:3,b:2,c:7,o:5]
复制代码 |
|