小编Jos*_*eph的帖子

Python 是否检查多条件 if 语句中的所有条件?

我很好奇如果第一个条件返回 False,Python 是否会继续检查 if 语句中的条件。我想知道这一点,因为我想知道最佳实践是否是在进行更复杂的检查之前尝试检查时间复杂度较低的条件。

这两个片段有什么区别吗?

if condition_1() and condition_2():
    do_something()
Run Code Online (Sandbox Code Playgroud)

if condition_1():
    if condition_2():
        do_something()
Run Code Online (Sandbox Code Playgroud)

python logic python-3.x

7
推荐指数
1
解决办法
6958
查看次数

我可以有条件地更改列表吗?

这可能已经被回答了,但是在搜索中找不到。

在Python 3中,我发现自己编写的代码看起来像这样:

def func():
    for item in list_A:
        if item == 'duck': list_B.append(0)
        elif item == 'goose': list_B.append(1)
        else: list_B.append(item)
    list_A = list_B
Run Code Online (Sandbox Code Playgroud)

我的意图是有条件地更改list_A中的值。例如:

list_A = ['duck', 'duck', 'goose', 'duck', 'chicken']
func(list_A) -> [0, 0, 1, 0, 'chicken']
Run Code Online (Sandbox Code Playgroud)

不过,理想情况下,我希望不创建第二个列表就这样做。我想找到类似以下的伪代码:

list_A = [(if item == 'duck': 0, elif item == 'goose': 1, else: item) for item in list_A]
Run Code Online (Sandbox Code Playgroud)

我的直觉是上面的方法不起作用,因为您不能在遍历列表时对列表进行变异(?),但是如果有人比我的原始方法要好,我将非常有兴趣了解它。谢谢!

python list python-3.x

0
推荐指数
1
解决办法
53
查看次数

标签 统计

python ×2

python-3.x ×2

list ×1

logic ×1