列表范围与重复的lis的种类

2024-05-28 23:44:34 发布

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

这是我的代码,除了def advance(stringlist)之外,其他一切都正常工作

def printList(stringlist):
    print stringlist or []
def add (stringlist, string):
    item = [] if string is None else [string]
    return item + (stringlist or [])
def current (stringlist):
    item =''
    return item + stringlist[0]
def advance(stringlist):
    item = []
    item2 = item + stringlist[1:]
    for item in range(5):
        return item2

我在寻找结果

>>> myList = None
>>> printList(myList)
[]
>>> for word in ['laundry','homework','cooking','cleaning']:
...     myList = add(myList, word)
...     printList(myList)
... 
[laundry]
[homework, laundry]
[cooking, homework, laundry]
[cleaning, cooking, homework, laundry]
>>> current(myList)
'cleaning'
>>> for i in range(5):
...     myList = advance(myList)
...     printList(myList)
...     print current(myList)
... 
[cooking, homework, laundry, cleaning]
cooking
[homework, laundry, cleaning, cooking]
homework
[laundry, cleaning, cooking, homework]
laundry
[cleaning, cooking, homework, laundry]
cleaning
[cooking

但我现在

['cooking', 'homework', 'laundry']
cooking
['homework', 'laundry']
homework
['laundry']
laundry
[]

其他代码工作正常,只是在'前进'代码 如何使列表变成四个单词而不删除其中的任何字符串?你知道吗


Tags: 代码forstringreturndefcurrentitemhomework
1条回答
网友
1楼 · 发布于 2024-05-28 23:44:34

您正在寻找一个列表旋转;这是用一些列表切片最容易实现的:

def advance(stringlist):
    return stringlist[1:] + stringlist[:1]

这将获取列表的第一个元素并将其放置在新列表的末尾:

>>> def advance(stringlist):
...     return stringlist[1:] + stringlist[:1]
... 
>>> advance(['cooking', 'homework', 'laundry', 'cleaning'])
['homework', 'laundry', 'cleaning', 'cooking']

您的版本只返回juststringlist[1:](因此除了第一个元素以外的所有元素);一个return语句在那里结束函数,然后,当它放在循环中时不会返回多次。你知道吗

相关问题 更多 >

    热门问题