2016-09-02 53 views
-1

我有一个名为language list的词典,其中包含两个项目:郊区和语言。 每个郊区可能有超过1种语言。如何对具有多个输入的字典进行排序

这是什么在词典“languagelist”中: ('Edgecumbe','波斯语,英语'),('交界三角','英语,普通话'),('Guildwood','普通话,英语'),('Greenmeadows','English')

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

我只能似乎排序的“郊区”的项目,但不能为郊区的语言排序。

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

这是代码来显示当前行:

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: ') 

任何帮助将不胜感激。

+2

你能展示一些你为此写的代码吗? – Dartmouth

+0

你的'languagelist'看起来不像一个Python字典,它看起来像一个元组的元组。 –

+0

郊区= {} languagelist = {} B = [] 郊区=输入( '市郊: ') 用于开线(' census.txt'): 线= line.split( '') 如果线[3]未在郊区: 郊区[线[3]] =行[3] 一个=行[4] A = A [: - 1] languagelist [线[3]] =一个 郊区内的elif line [3]: 郊区[line [3]] =郊区[line [3]] a = line [4] a = a [: - 1] –

回答

0

假设您从

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

然后,对于任何place,在那个地方讲的排序语言是

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

当然,这将是更好,如果你只需要使用一个字典映射到你想要开始的地方。

+0

它正确排序,但显示方括号。 语言:['English','Farsi'] 我们可以删除不需要的字符,以便它返回: 语言:英语,波斯语 –

+0

@misst请参阅更新。 –

相关问题