gpt4 book ai didi

python - 根据值对 Python 中的字典列表进行分区

转载 作者:太空宇宙 更新时间:2023-11-03 16:24:08 27 4
gpt4 key购买 nike

我面临编码挑战,要求我创建一个逻辑,将字典列表划分为三个新的字典列表。新名单需要有相同数量的有经验和无经验的人员。原来的名单中,有经验的人员和没有经验的人员的数量是偶数。我不知道如何形成这个挑战的逻辑。这是一个简短的版本:

mylist = [
{'name': 'Jade', 'height': 64, 'experience': 'n'},
{'name': 'Diego', 'height': 60, 'experience': 'y'},
{'name': 'Twee', 'height': 70, 'experience': 'n'},
{'name': 'Wence', 'height': 72, 'experience': 'y'},
{'name': 'Shubha', 'height': 65, 'experience': 'y'},
{'name': 'Taylor', 'height': 68, 'experience': 'n'}
]

新的词典需要拥有同等数量的有经验和无经验的人员,如下所示:

newlist_1 = [
{'name': 'Diego', 'height': 60, 'experience': 'y'},
{'name': 'Jade', 'height': 64, 'experience': 'n'},
]

newlist_2 = [
{'name': 'Wence', 'height': 72, 'experience': 'y'},
{'name': 'Twee', 'height': 70, 'experience': 'n'},
]

newlist_3 = [
{'name': 'Shubha', 'height': 65, 'experience': 'y'},
{'name': 'Taylor', 'height': 68, 'experience': 'n'}
]

我保留了原来的列表,所以最终总共需要四个集合。

最佳答案

def make_teams(my_list):

# divide the member list in two
experienced = list()
novice = list()
for record in my_list:
if record.get('experience') in ['Y','y']:
experienced.append(record)
else:
novice.append(record)

# stitch the two lists together as a list of tuples
teams = zip(experienced, novice)

# build a dictionary result starting with the member list
results={
'members':my_list
}

# update results with each team
for i in range(0,len(teams)):
results.update(
{'newlist_%s'%(i+1):list(teams[i])})

return results
<小时/>

将产生以下内容...

from pprint import pprint
pprint(make_teams(mylist))

{'members': [{'experience': 'n', 'height': 64, 'name': 'Jade'},
{'experience': 'y', 'height': 60, 'name': 'Diego'},
{'experience': 'n', 'height': 70, 'name': 'Twee'},
{'experience': 'y', 'height': 72, 'name': 'Wence'},
{'experience': 'y', 'height': 65, 'name': 'Shubha'},
{'experience': 'n', 'height': 68, 'name': 'Taylor'}],
'newlist_1': [{'experience': 'y', 'height': 60, 'name': 'Diego'},
{'experience': 'n', 'height': 64, 'name': 'Jade'}],
'newlist_2': [{'experience': 'y', 'height': 72, 'name': 'Wence'},
{'experience': 'n', 'height': 70, 'name': 'Twee'}],
'newlist_3': [{'experience': 'y', 'height': 65, 'name': 'Shubha'},
{'experience': 'n', 'height': 68, 'name': 'Taylor'}]}

关于python - 根据值对 Python 中的字典列表进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38151826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com