python 反转函数和布尔值错误
python reverse function and boolean values error
我写了一个函数,可以从一个列表中生成两个列表的元组。一个列表包含第二个、第四个和第五个值,另一个列表包含所有剩余的值。我还有一个条件,如果 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 时相同
reverse = True
不起作用的原因是您在检查之前有一个 return
语句:
return (xs, ys)
return
语句之后的代码永远不会执行。
此外,reverse()
颠倒了列表 returns None
,所以 x
和 y
最终会变成 None
.
解决这两个问题的方法如下:
if reverse:
xs.reverse()
ys.reverse()
return (xs, ys)
最后,您可以使用切片而不是显式循环来提取 odd/even 元素:
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()
没有 return 任何值。它反转列表。所以反向列表在 xs
和 ys
.
中
http://www.tutorialspoint.com/python/list_reverse.htm
此外,在执行 if
语句之前,您正在 returning。
return (xs, ys)
if reverse is True:
在函数中,return
之后一切都不起作用。这就是为什么您的 if
语句不起作用的原因。 return
之后一切都变得无效了。你可以这样想象;
def wr():
x="hey"
y="Hello"
return x
return y
print (wr())
像这个,这个函数只写hey
,因为它返回了一次,其他return y
就失效了
我写了一个函数,可以从一个列表中生成两个列表的元组。一个列表包含第二个、第四个和第五个值,另一个列表包含所有剩余的值。我还有一个条件,如果 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 时相同
reverse = True
不起作用的原因是您在检查之前有一个 return
语句:
return (xs, ys)
return
语句之后的代码永远不会执行。
此外,reverse()
颠倒了列表 returns None
,所以 x
和 y
最终会变成 None
.
解决这两个问题的方法如下:
if reverse:
xs.reverse()
ys.reverse()
return (xs, ys)
最后,您可以使用切片而不是显式循环来提取 odd/even 元素:
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()
没有 return 任何值。它反转列表。所以反向列表在 xs
和 ys
.
http://www.tutorialspoint.com/python/list_reverse.htm
此外,在执行 if
语句之前,您正在 returning。
return (xs, ys)
if reverse is True:
在函数中,return
之后一切都不起作用。这就是为什么您的 if
语句不起作用的原因。 return
之后一切都变得无效了。你可以这样想象;
def wr():
x="hey"
y="Hello"
return x
return y
print (wr())
像这个,这个函数只写hey
,因为它返回了一次,其他return y
就失效了