python反函数和布尔值

2024-04-20 00:31:31 发布

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

我编写了一个函数,从一个列表中生成两个列表的元组。一个列表包含第二个、第四个和第五个值,另一个列表包含所有剩余值。我还有一个条件,如果reverse=True,则返回时列表的值将反转。在

def seperate(x, reverse=False):

    xs = []
    ys = []
    for i in range(0, len(x), 2):
            xs.append(x[i])
            ys.append(x[i + 1])
    return (xs, ys)
    if reverse is True:
            x = xs.reverse()
            y = ys.reverse()
    return(x, y)

由于某些原因,当reverse为True时,列表不会被反转,它们与reverse为False时相同


Tags: 函数infalsetrue列表forreturndef
3条回答
return (xs, ys)
if reverse is True:

在函数中,return之后,一切都不工作。这就是您的if语句不起作用的原因。在return之后,一切都变得无效。你可以想象一下

^{pr2}$

像这个一样,这个函数只写hey,因为它返回一次,而另一次返回{}不再有效。在

reverse = True不起作用的原因是在检查之前有一个return语句:

return (xs, ys)

return语句后的代码永远不会执行。在

另外,reverse()在适当的地方反转列表并返回None,因此x和{}将成为{}。在

以下是如何解决这两个问题:

^{pr2}$

最后,可以使用切片而不是显式循环来提取奇数/偶数元素:

In [7]: x = [1, 2, 3, 4, 5, 6, 7, 8]

In [8]: x[::2]
Out[8]: [1, 3, 5, 7]

In [9]: x[1::2]
Out[9]: [2, 4, 6, 8]

reverse()不返回任何值。它会在适当的位置反转列表。所以反向列表在xs和{}中。在

http://www.tutorialspoint.com/python/list_reverse.htm

另外,在执行if语句之前返回。在

相关问题 更多 >