[英]split list of dicts into chunk lists by returning specific value _ python
也許之前有人問過這個問題,但我有一個字典列表,我需要將它分成更小的塊,並返回該字典的唯一特定值。
my_list = [
{"name": "q", "id":1},
{"name": "w", "id":2},
{"name": "z", "id":3},
{"name": "f", "id":44},
{"name": "k", "id":55},
{"name": "d", "id":8},
{"name": "t", "id":25},
]
n = 4
x = [my_list[i:i + n] for i in range(0, len(my_list), n)]
print(x)
這段代碼工作得很好,但我只需要返回ids :
[[1, 2, 33, 44], [55, 8, 25]]
從 dict 列表中獲取所有ids
,然后從中創建n
大小列表的子列表:
def chunks(lst, n):
"""Yield successive n-sized chunks from lst."""
for i in range(0, len(lst), n):
yield lst[i:i + n]
my_list = [
{'name': "q", 'id':1},
{'name': "w", 'id':2},
{'name': "z", 'id':3},
{'name': "f", 'id':44},
{'name': "k", 'id':55},
{'name': "d", 'id':8},
{'name': "t", 'id':25},
]
ids = [dd['id'] for dd in my_list] # [1,2,3,44,55,8,25]
print(list(chunks(ids, 4)))
輸出:
[[1, 2, 3, 44], [55, 8, 25]]
這將起作用。 讓我知道任何問題。
my_list = [
{"name": "q", "id":1},
{"name": "w", "id":2},
{"name": "z", "id":3},
{"name": "f", "id":44},
{"name": "k", "id":55},
{"name": "d", "id":8},
{"name": "t", "id":25},
]
n = 4
x = [[y["id"] for y in my_list[i:i + n]] for i in range(0, len(my_list), n)]
print(x)
my_list[i: i + n]
將從原始列表中創建一個切片列表,您必須對其進行迭代以獲取字典中存在的id
。
x = [
[j["id"] for j in my_list[i: i + n]] for i in range(0, len(my_list), n)
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.