如何在Python中的条件语句中使用循环?

埃洛萨拉米

我想检查列表是否仅包含特定元素(在我的情况下为“无”)

我相信有一种Python方式可以做到这一点,我尝试过: if mydict[direction] == None for direction in DIRECTIONS: ...

但这显然行不通

换句话说,我需要一种PYTHONIC方式,可以缩短下一个代码:

def ispure(element)
    for direction in DIRECTIONS:
        if mydict[direction] != element
            return False
        else:
            pass
    return True

希望我很清楚,在此先感谢。

Aviv Shai

有多种解决方案,因此您可以挑选毒药。假设a有一个100None的列表,以下是我可以想到的一些列表(按计算机的性能排序):


使用set

def only_element(element, ls):
    return set(ls) == set([element])

定时:

$ python -m timeit 'set(a) == set([None])'
100000 loops, best of 5: 3.06 µs per loop

使用all

def only_element(element, ls):
    return all([item == element for item in ls])

定时:

$ python -m timeit 'all([item == None for item in a])'
50000 loops, best of 5: 8.81 usec per loop

使用for循环:

def only_element(element, ls):
    for item in ls:
        if item != element:
            return False
    return True

定时:

$ python -m timeit 'for item in a:\n    if item != None:\n        break'
100000 loops, best of 5: 9.16 µs per loop 

使用filter

def only_element(element, ls):
    return len(list(filter(lambda x: x != element, ls))) == 0

定时:

$ python -m timeit 'len(list(filter(lambda x: x != None, a))) == 0'
10000 loops, best of 5: 20.8 usec per loop

什么是外卖?

通常,与使用for循环相比,有一个内置函数可以更好地满足您的需求,并且运行速度更快(并且使用更少的代码)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在if语句中使用循环

在Python中:如何在嵌套在for循环中的if语句中使用索引号?

如何在if-else语句中使用for循环

如何在FOR循环语句中使用动态SQL?

如何在SQL UPDATE语句中使用IF条件?

如何在JavaScript IF语句中使用OR条件?

如何在if语句中使用多个条件

如何在条件语句中使用液体标签

如何在bash case语句中使用条件构造?

如何在 RANK 语句中使用条件

如何在dplyr中的条件语句中使用mutate_at()中的rox()?

如何在TOSCA中使用循环语句和条件语句?

关于如何在条件语句中使用 Python 添加字符串的问题

如何在Django模板的条件语句中使用字典中的值进行操作

在Python列表理解中的if / elif语句中使用“ for”循环

Python:如何在if语句中使用RegEx?

Python:如何在if语句中使用RegEx?

如何在Python的SQL语句中使用变量?

如何在 Python 的控制流语句中使用列表

如何在python的If语句中使用print内部的输入

如何在VBA中的语句中使用WEEKNUM函数?

如何在 if 语句中使用 JSON 文件中的值

如何在Rust中的语句中使用std :: convert :: Into?

如何在 Python 3 中的 if 语句中打破 if 语句中的多个循环

我可以在Python中具有多个条件的if-else语句中使用嵌套的for循环吗?

在Python 3中如何在if语句中使用随机函数?

如何在条件语句中的for循环迭代器上使用比较语句?

如何在case语句中使用优先值或在函数中的sql语句中的case语句中设置变量

如何在in和if语句中使用带有循环的语句