如何对包含多个输入的字典进行排序

时间:2016-09-02 11:44:32

标签: python sorting dictionary

我有一个名为语言列表的词典,包含2个项目:郊区和语言。 每个郊区可能有超过1种语言。

这就是字典"语言列表中的内容": (' Edgecumbe','波斯语,英语'),(' Junction Triangle','英语,普通话'),' Guildwood','普通话,英语'),(' Greenmeadows','英语')

用户进入郊区,例如。 Edgecumbe 我需要按字母顺序显示该郊区的语言,例如 语言:英语,波斯语

我似乎只能排序"郊区" item,但无法对该郊区的语言进行排序。

如何仅显示用户输入的郊区语言?

这是要显示的当前代码行:

print('Languages: ' + languagelist[suburb])

但它没有正确排序。它显示: 语言:波斯语,英语

我当前代码的剪辑是:

suburbs={} languagelist={} b=[] suburb=input('Suburb: ') 
for line in open('census.txt'): line=line.split(',') 
if line[3] not in suburbs: suburbs[line[3]] = line[3] a=line[4]a=a[:-1] languagelist[line[3]]= a elif line[3] 
in suburbs: suburbs[line[3]] = suburbs[line[3]] a=line[4] a=a[:-1]
if a not in languagelist[line[3]]: a=line[4] a=a[:-1] languagelist[line[3]]= languagelist[line[3]] + ', ' + a b=languagelist[line[3]] b.split(', ') languagelist[line[3]]=[] languagelist[line[3]]=b 
else: continue while suburb: if suburb not in suburbs: 
print('No data found for ' + suburb + '.')       
else:print('Languages:'+str(sorted(languagelist.suburb)))suburb=input('Suburb: ') 

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

假设您从

开始
languagelist = dict([('Edgecumbe', 'Farsi, English'), ('Junction Triangle', 'English, Mandarin'), ('Guildwood', 'Mandarin, English'), ('Greenmeadows', 'English')])

然后,对于任何place,该地方所说的排序语言是

', '.join(sorted(languagelist[place].split(', ')))

当然,如果你只是使用字典映射到你想要开始的地方,它会更好