2016-11-09 64 views
-1

我想创建一个字典,使用程度关键和值必须全部采取学位学生。下面,SAM需要工商管理学士学位,杰克拿工商管理学士学位,等事先循环通过两个列表创建字典

students = ['sam','jack','rose','khan','marry','xio'] 
degrees = ['bcom','bcom','bsc','arts','bsc','arts'] 

回答

1

由于可能是这个片段做你想要什么:

dictionary = {} 
for degree, student in zip(degrees, students): 
    dictionary.setdefault(degree, []).append(student) 

{ '艺术': '汗', 'XIO'], '工商管理学士学位': 'SAM', '杰克'], 'BSC': '玫瑰', '娶']}

0

这里是另一种紧凑的方式来实现这一行为:

s2d = dict(zip(students, degrees)) 
{k: [s for s, d in s2d.items() if d==k] for k in degrees} 

{ '管理学士学位':[ 'SAM', '千斤顶'], 'BSC':[ '玫瑰', '嫁'], '艺术':[ '汗', 'XIO']}

虽然它不会工作,如果你有,如果同一个学生将采取两个不同程度