簡體   English   中英

通過返回特定值 _ python 將字典列表拆分為塊列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM