List 涉及数字的猪拉丁语

List 涉及数字的猪拉丁语,list,function,python-3.x,List,Function,Python 3.x,我是计算机编程新手,我正在尝试编写一个程序,将每个单词的英语转换成拉丁语,将第一个字母移到单词的末尾,并添加“ay” 如果有一个数字,用2乘以4 ex. John has 4 cats --> ndaay ashay 12 atscay) 我记下了第一个猪的拉丁语部分,但似乎不知道数字部分。我的代码访问一个文本文件,但这里有一个程序,将执行字符串。我应该在哪里安装数字功能 def pig_english(): letterlist = [i + i[0] for

我是计算机编程新手,我正在尝试编写一个程序,将每个单词的英语转换成拉丁语,将第一个字母移到单词的末尾,并添加“ay”

如果有一个数字,用2乘以4

ex. John has 4 cats --> ndaay ashay 12 atscay)
我记下了第一个猪的拉丁语部分,但似乎不知道数字部分。我的代码访问一个文本文件,但这里有一个程序,将执行字符串。我应该在哪里安装数字功能

    def pig_english():
        letterlist = [i + i[0] for i in read_script()]
        ayList = [i + 'ay' for i in letterlist]
        delaylist = [i[1:] for i in ayList]
        print (delaylist)
您可以测试i.isdigit,然后将其转换为int,但在一个理解中完成这一切会更容易:

def pig_english(words):
    ayList = [str(int(i)*2+4) if i.isdigit() else i[1:]+i[0]+"ay" for i in words]
    print (ayList)
如果将操作拆分为多个理解,则需要防止INT:

def pig_english(words):
    numberlist = [int(i)*2+4 if i.isdigit() else i for i in words]
    letterlist = [i if isinstance(i, int) else i + i[0] for i in numberlist]
    ayList = [i if isinstance(i, int) else i + 'ay' for i in letterlist]
    delaylist = [str(i) if isinstance(i, int) else i[1:] for i in ayList]
    print (delaylist)

>>> pig_english("John has 4 cats".split())
['ohnJay', 'ashay', '12', 'atscay']

约翰是怎样成为恩代的?打字错误?@逻辑,这显然不是一个打字错误。我认为你的字典错了。哈哈