我有一個以串列為值的主題字典。
topics = {'sports':sports, 'food':food, 'movies':movies, 'singers':singers, 'goats':goats}
這些是價值觀
sports = ['soccer','basketball','tennis'],
food = ['burger','fried rice', 'spaghetti','curry', 'lamb','wings']
movies = ['spider man', 'batman', 'iron man', 'hustle', 'desperado']
singers = ['drake']
goats = ['messi', 'jordan']
我想以給定大小 k 的方式轉換字典,串列中的元素不應大于 k。如果是,則創建一個新串列,并將元素放入其中。例如,如果k = 2,這意味著我希望串列值像這樣拆分:
{'goats':['messi', 'jordan'],
'sports_1', ['soccer','basketball'],
'sports_2': ['tennis'],
'food_1': ['burger','fried rice'],
'food_2': ['spaghetti','curry'],
'food_3': ['lamb','wings'],
'movies_1': ['spider man', 'batman'],
'movies_2: ['iron man', 'hustle'],
'movies_3':['desperado'],
'singers':['drake']}
uj5u.com熱心網友回復:
嘗試:
def chunks(lst, n):
for i in range(0, len(lst), n):
yield lst[i : i n]
out = {}
for k, v in topics.items():
c = list(chunks(v, 2))
if len(c) == 1:
out[k] = c[0]
else:
for i, ch in enumerate(c, 1):
out[f"{k}_{i}"] = ch
print(out)
印刷:
{
"sports_1": ["soccer", "basketball"],
"sports_2": ["tennis"],
"food_1": ["burger", "fried rice"],
"food_2": ["spaghetti", "curry"],
"food_3": ["lamb", "wings"],
"movies_1": ["spider man", "batman"],
"movies_2": ["iron man", "hustle"],
"movies_3": ["desperado"],
"singers": ["drake"],
"goats": ["messi", "jordan"],
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/492144.html
標籤:python-3.x 列表 字典 分裂
