Python:特定列表输出不一致

时间:2014-11-19 22:13:15

标签: python list

我相信我得到的输出是某个地方草率代码的产物,但我似乎无法得到它。我希望我的功能是在列表中列出元素的新列表,在这些元素中使用这些元素'猪 - 拉丁语翻译。我已经使该函数工作,但它使所有新的列表元素只有列表中第一个元素的Pig-Latin转换传递给函数,即使我使用索引进行迭代通过传递列表的元素。

def pigLatin(targetlist):
    newlist = () 
    listnewlist = list(newlist)
    index = 0 # gets incremented 
    firstletter = targetlist[index][0] 
    word = targetlist[index][1:] 
    print('Words made into Pig Latin: ')

    while index < len(targetlist):
        listnewlist.append(word + firstletter + 'ay')
        index += 1

    print(listnewlist)

,在用户输入"how now brown cow"后,显示:

['owhay', 'owhay', 'owhay', 'owhay'] 

1 个答案:

答案 0 :(得分:1)

wordfirstletter都是在循环之外计算的,并保留targetlist的第一个单词的值。

恕我直言,你应该写:

def pigLatin(targetlist):
    newlist = () 
    listnewlist = list(newlist)
    index = 0 # gets incremented 
    print('Words made into Pig Latin: ')

    while index < len(targetlist):
        firstletter = targetlist[index][0] 
        word = targetlist[index][1:] 
        listnewlist.append(word + firstletter + 'ay')
        index += 1

    print(listnewlist)