Alw*_*nny 1 python list-comprehension python-3.x
feed_mapping = {'BC': 11, 'HA':12, 'AB':16,'GR':18}
x = ['AB-16007891', 'HA-4625798','GR-4444545','BC-4447764','HA-46257854']
feed = [{"feed": feed_mapping[i.split('-')[0]],"id":[i]} for i in x]
print(feed)
Run Code Online (Sandbox Code Playgroud)
通过上面的列表理解,我可以生成字典列表。如果值相同,我需要将值附加到idfeed
电流输出:
[{'feed': 16, 'id': ['AB-16007891']}, {'feed': 12, 'id': ['HA-4625798']}, {'feed': 18, 'id': ['GR-4444545']}, {'feed': 11, 'id': ['BC-4447764']}, {'feed': 12, 'id': ['HA-46257854']}]
Run Code Online (Sandbox Code Playgroud)
预期产量:
[{'feed': 16, 'id': ['AB-16007891']}, {'feed': 12, 'id': ['HA-4625798','HA-46257854']}, {'feed': 18, 'id': ['GR-4444545']}, {'feed': 11, 'id': ['BC-4447764']}]
Run Code Online (Sandbox Code Playgroud)
使用 itertools.groupby
例如:
from itertools import groupby
feed_mapping = {'BC': 11, 'HA':12, 'AB':16,'GR':18}
x = ['AB-16007891', 'HA-4625798','GR-4444545','BC-4447764','HA-46257854']
x.sort()
feed = [{"feed": feed_mapping[k], "id": list(v)} for k, v in groupby(x, lambda x: x.split('-')[0])]
print(feed)
Run Code Online (Sandbox Code Playgroud)
输出:
[{'feed': 16, 'id': ['AB-16007891']},
{'feed': 11, 'id': ['BC-4447764']},
{'feed': 18, 'id': ['GR-4444545']},
{'feed': 12, 'id': ['HA-46257854', 'HA-4625798']}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |