我有一个dicts列表:
[
{"num": 60, "name": "A"},
{"num": 50, "name": "B"},
{"num": 49, "name": "C"},
... etc
]
Run Code Online (Sandbox Code Playgroud)
列表创建如下:
[[x, {}] for x in xrange(0, mylist[0]['num'])]
list:
[..., [50, {}], [51, {}], ... , [60, {}], ..., [65, {}], ... etc]
Run Code Online (Sandbox Code Playgroud)
我会得到这样的东西:
[..., [50, {"num": 50, "name": "B"}], [51, {}], ..., [60, {"num": 60, "name": "A"}], ..., [65, {}], ... etc]
Run Code Online (Sandbox Code Playgroud)
怎么做?
您可以遍历列表并通过简单的索引获取相对数字:
>>> [[k['num'],k] for k in li]
[[60, {'num': 60, 'name': 'A'}], [50, {'num': 50, 'name': 'B'}], [49, {'num': 49, 'name': 'C'}]]
Run Code Online (Sandbox Code Playgroud)
如果您希望列表中包含缺少nums的空字典,则可以使用如下所示的列表推导,例如:
>>> l=[2,3,6,10]
>>> z=zip(l,l[1:])
>>> [t for i,j in z for t in range(i,j)]+[l[-1]]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |