我有一个数字列表,我想用他们的单词版本替换。
这是我到目前为止的代码:
phone_num = fixPhoneNum(original) # 067-892-3451
def getWordForm(phone_num):
words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
'eight', 'nine']
a = list(phone_num)
for n,i in (a):
if i==1:
a[n]=words[1] # etc..
如何将一个列表中的数字替换为另一个列表?
编辑我完成了从数字到单词的翻译,但这些单词之间没有空格。 twosixeight-等
我怎样才能使每个单词以空格结尾?我是否在单词列表中插入并留空?
答案 0 :(得分:1)
试试这个让我知道它是怎么回事
phone_num = fixPhoneNum(original) # 067-892-3451
def getWordForm(phone_num):
words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
'eight', 'nine']
a = list(phone_num)
for n,i in (a):
if i==1:
a[n]=words[1]+' '
答案 1 :(得分:1)
我们可以使用map
和lambda
来完成类似的工作。
phone_num = fixPhoneNum(original) # 067-892-3451
words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
'eight', 'nine']
num_in_words = map(lambda num: words[int(num)] if num.isdigit() else num, phone_num)
print (''.join(num_in_words))
输出
zerosixseven-eightninetwo-threefourfiveone
答案 2 :(得分:0)
工作示例#1 - 使用Python 2.6.9 和 2.7.10 <进行测试/ strong>和 3.2.5 和 3.4.3 和 3.5.0 < / EM> 强>
def getWordForm(original):
a = []
words = 'zero,one,two,three,four,five,six,seven,eight,nine'.split(',')
for i in original:
a.append(words[int(i)]) if i.isdigit() else a.append(i)
return ' '.join(a)
print(getWordForm('067-892-3451'))
<强>输出强>
zero six seven - eight nine two - three four five one
工作示例#2 - 使用Python 2.6.9 和 2.7.10 <进行测试/ strong>和 3.2.5 和 3.4.3 和 3.5.0 < / EM> 强>
def getWordForm(original):
words = 'zero,one,two,three,four,five,six,seven,eight,nine'.split(',')
a = map(lambda num: words[int(num)] if num.isdigit() else num, original)
return ' '.join(a)
print(getWordForm('067-892-3451'))
<强>输出强>
zero six seven - eight nine two - three four five one