2016-09-02 55 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請參閱更新。 –

相關問題