2012-03-04 118 views
2

所以,對於一個任務,我將不得不採取用戶輸入,如1146,然後讓Python將其轉換爲「一一四六」Python字典和多個字典[]

到目前爲止,我開始與字典

dict = { 1:"one", 2:"two", 3:"three", 4:"four", 5:"five", 
    6:"six", 7:"seven", 8:"eight", 9:"nine"}; 

然後索要INOUT

x = raw_input(("enter number: ")) 
y = x.split 

我想知道如何或是否字典[Y]可以採取一個變量時y的用戶輸入之後分割等。誰能幫忙?

+10

,因爲你基本上取代了內置構造爲不命名類型的字典'dict' 'dict'類型。 – 2012-03-04 21:55:36

回答

3

您不能使用列表將索引轉換爲字典,但您可以使用循環,列表理解或生成器表達式。事情是這樣的:

digits = {'1':'one', '2':'two', ...} 
x = raw_input("enter number: ") 
y = ' '.join(digits[number] for number in x) 
+0

從我的理解,輸入後,它需要一個像12這樣的數字,並從字典添加到空白''。所以添加一個,然後將兩個添加到'一個',直到數字完成? – glors 2012-03-04 22:27:04

+0

它被稱爲「列表理解」,谷歌它。 – alexis 2012-03-04 22:52:54

+0

@glors;傑里米在第一行末尾加上的......表示繼續這個序列(如在這種情況下,轉到「9」或「0」)。第二行,我想你會得到的。第三行說: ' '' .join'。因此,Jeremy在「x」中的數字[數字]的每個部分之間帶有一個''''(即空的)字符。從'用於x中的數字'開始。然後檢查字典作爲數據類型。 – Droogans 2012-03-04 23:24:02

5

一些提示:

  1. 在你的字典包含0: "zero"

  2. y = x.split 
    

    不調用該方法x.split - 它只是方法本身分配給y

  3. 得到一個字符串的字符,你可以遍歷它:

    for c in my_string: 
        print c 
    
+0

感謝您的快速回復。 我在我的詞典中添加了0:「零」 在我將它用於程序之前,我應該將輸入轉換爲int嗎? ,我不明白什麼應該重複 – glors 2012-03-04 22:00:34

+0

+ +1作爲提示只在作業標籤。 – Droogans 2012-03-04 22:29:20

+0

@Droogans:請注意Sven是添加作業標籤的人。並不是每個人都忽略了海報附加的標籤。 – 2012-03-04 23:14:27