通过返回特定值upython将dict列表拆分为块列表
也许以前有人问过这个问题,但我有一个字典列表,我需要将它分成更小的块,只返回字典的特定值通过返回特定值upython将dict列表拆分为块列表,python,Python,也许以前有人问过这个问题,但我有一个字典列表,我需要将它分成更小的块,只返回字典的特定值 my_list = [ {"name": "q", "id":1}, {"name": "w", "id":2}, {"name": "z", "id":3}, {"name":
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)
这段代码运行得非常好,但我只需要返回ID:
[[1, 2, 33, 44], [55, 8, 25]]
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)
]
x=[
[j[“id”]表示我的列表中的j[i:i+n]]表示范围内的i(0,len(我的列表),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},
]
n = 4
x = [[y["id"] for y in my_list[i:i + n]] for i in range(0, len(my_list), n)]
print(x)
从dict列表中获取所有
id
,然后从中创建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]]
你能详细说明你需要代码做什么吗?如果代码正常,问题是什么?@skinny_func我在最后一行说,我只需要将ID返回到拆分的数组中。这是否回答了您的问题。您可以将其与id列表一起使用:
ids=[d['id']代表我的列表中的d]
您提供的输入中没有33
,您的意思是3
?