代码太长,无法在此处通过,因此它在PasteBin上:http://pastebin.com/UDPFYsLJ
我想要的是能够放入一些类似“555-GET-FOOD”的东西,然后得到“555-438-3663”。在
我有代码把字母改成数字…只是在完全不同的行上。下面是一个小片段:
Number: 555-GET-FOO3
Number: 555-4ET-FOOD
Number: 555-GET-3OOD
它正确地改变了字母,不去管数字,但它们都在不同的行上。我知道它在for循环中运行,但我希望对前一个循环所做的更改保持在当前循环中。在
例如,如果第一个循环返回555-GET-FOO3,我希望下一个循环获取该值,以便返回555-4ET-FOO3。在
我只是不知道该怎么做。在
有什么建议就好了。我也看过这个帖子:Removing a list of characters in string
但是,我对translate函数并没有做太多(或者说什么都没有做),很难在Python文档之外找到一个好的演练。在
这是为学校准备的,我们不能使用Python3,我们必须使用Python2.7,所以我认为maketranslate不起作用。在
尝试另一种方法:而不是替换字符,而是用转换后的字母从输入字符串创建新字符串。您可以迭代字符串的字符,如下所示:
一旦你能做到这一点,这只是一个问题,创建一个字母到数字的映射,你可以在那里查找字符并找到它对应的数字。如果在映射中获得匹配,则使用该匹配项(如果没有),则使用原始字符:
^{pr2}$假设您有字母到数字的映射,您可以尝试以下操作:
这是通过将字母映射到数字(
num_map
),然后使用reduce
迭代映射的每个键(字母),用相应的数字替换字母。在然而,由于这是针对学校的,这种方法可能有点晦涩(以一种不好的方式:),@inspector4dget的答案就是我要采用的方法。在
你要做的就是改变这个
为此:
^{pr2}$说明:
在您的方法中,您替换了原始电话号码中的一些字符,并将结果赋给一个名为
newNumber
的新变量。但是,您对newNumber
什么也不做,所以它被丢弃了。在相反,如果您用转换的结果覆盖输入(
phoneNum
),那么您所做的任何新转换都将使用新覆盖的值phoneNum
,从而使所有更改累积相关问题 更多 >
编程相关推荐