2012-03-04 89 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