python反向函数和 boolean 值错误

标签 python boolean reverse

我编写了一个函数,可以从一个列表生成两个列表的元组。一个列表包含第二个、第四个和第五个值,另一个列表包含所有剩余的值。我还有一个条件,如果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() 会原地反转列表并返回 None,因此 xy 将最终成为

以下是解决这两个问题的方法:

if reverse:
        xs.reverse()
        ys.reverse()
return (xs, ys)

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

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]

关于python反向函数和 boolean 值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890268/

相关文章:

java - 测试字符串格式的 boolean 表达式

javascript - 我如何在 Javascript 中比较字符串和 boolean 值?

algorithm - 反转 CRC32

java - 带用户输入的插入排序 double 组 - JAVA

JavaScript:完全旋转一个字符串,然后在给定数字输入的另​​一个方向上旋转该字符串

python - 在 python 终端中触发 Airflow DAG

python - 创建对象属性的引用列表

python - 类方法和属性的命名约定

python - 如何在 Django 中使用外键?

ruby - 专有或 ruby 的关键字?