使用相同的字典将单词转换为数字,反之亦然

2024-09-28 03:15:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个函数,将一个数字转换成它的等价词,反之亦然。在

一个功能完成了,混淆了第二个功能。为此,我可以使用两个字典,其中键和值对是交换的,但我想知道是否可以为这两个函数使用一个字典?在

我试了一下,但我的答案与列表顺序不一致。如果有办法按上述顺序得到名单,请告诉我。在

我的代码是:

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

def numberToWord(answer):    
    myAnsList=list(answer)  
    print(myAnsList)  
    myAnsWordList=[]  
    for k,i in nDict.items():    
        if str(i) in myAnsList:    
            myAnsWordList.append(k)  
    myAnsString=' '.join(myAnsWordList)  
    print(myAnsString)

numberToWord('824')

电流输出:

^{pr2}$

期望输出:

['8', '2', '4']
eight two four

Tags: 函数answerin功能字典顺序fourprint
1条回答
网友
1楼 · 发布于 2024-09-28 03:15:20

我想这就是你想要的

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

def printNumbers(numbers):
    print(list(numbers))
    print(' '.join(map(nDict.get, numbers)))

如果你改变了字典的顺序,你可以用这个字符作为单词的键,而不是反过来。在

更新以使用同一词典 注意,10是由2个字符组成的,所以它不会完全相同,而10将是一个0

^{pr2}$

更新2:

基于注释,字典可以反转并加快转换速度

nDict={"zero":"0", "one":1,"two":2,"three":3,"four":4,"five":5,"six":6,"seven":7,"eight":8,"nine":9}
revNDict = { str(v): k for k, v in nDict.items() }

def printNumbers(numbers):
    print(list(numbers))
    print(' '.join(map(revNDict.get, numbers)))

相关问题 更多 >

    热门问题