Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过返回特定值upython将dict列表拆分为块列表_Python - Fatal编程技术网

通过返回特定值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