Python 检查列表以查看元素是否大于指定的数字
我试图检查列表中的特定元素是否大于设定值 所以 我只是不确定在这个场景中使用什么命令来检查每个列表元素,或者在一行中是否可以 您询问列表中是否有任何元素大于x。如果只需要一个元素,可以使用max函数在列表中找到最大的元素,并检查其是否大于x: 使用列表理解,您还可以使用一行代码使列表中的所有元素的列表大于x: 此代码生成一个大于x的列表中所有元素的列表。您可以看到负责此操作的代码:Python 检查列表以查看元素是否大于指定的数字,python,python-3.x,Python,Python 3.x,我试图检查列表中的特定元素是否大于设定值 所以 我只是不确定在这个场景中使用什么命令来检查每个列表元素,或者在一行中是否可以 您询问列表中是否有任何元素大于x。如果只需要一个元素,可以使用max函数在列表中找到最大的元素,并检查其是否大于x: 使用列表理解,您还可以使用一行代码使列表中的所有元素的列表大于x: 此代码生成一个大于x的列表中所有元素的列表。您可以看到负责此操作的代码: [i for i in list if i > x] 这意味着,迭代列表,如果任何元素i的条件i>x为真,
[i for i in list if i > x]
这意味着,迭代列表,如果任何元素i的条件i>x为真,则将该元素添加到新列表中。最后,返回新列表。您询问列表中是否有大于x的元素。如果只需要一个元素,可以使用max函数在列表中找到最大的元素,并检查其是否大于x:
使用列表理解,您还可以使用一行代码使列表中的所有元素的列表大于x:
此代码生成一个大于x的列表中所有元素的列表。您可以看到负责此操作的代码:
[i for i in list if i > x]
这意味着,迭代列表,如果任何元素i的条件i>x为真,则将该元素添加到新列表中。最后,返回新列表。列表理解将适合您的用例
In [1]: x=22
In [2]: l=[10,20,30]
In [3]: exist = [n for n in l if n > x]
In [4]: if exist:
...: print "elements {} are greater than x".format(exist)
...:
elements [30] are greater than x
如果列表很长,请使用生成器,这样就不必遍历列表的所有元素
In [5]: exist = next(n for n in l if n > x)
In [6]: if exist:
print "Element {} is greater than x".format(exist)
...:
Element 30 is greater than x
列表理解将适合您的用例
In [1]: x=22
In [2]: l=[10,20,30]
In [3]: exist = [n for n in l if n > x]
In [4]: if exist:
...: print "elements {} are greater than x".format(exist)
...:
elements [30] are greater than x
如果列表很长,请使用生成器,这样就不必遍历列表的所有元素
In [5]: exist = next(n for n in l if n > x)
In [6]: if exist:
print "Element {} is greater than x".format(exist)
...:
Element 30 is greater than x
使用Python的自然方法来检查条件是否适用于多个条件中的任何一个:
x = 22
lst = [10, 20, 30] # do NOT use list as a variable anme
if any(y > x for y in lst):
# do stuff with lst
any将在iterable的第一个truthy元素被传递时终止,因此,不会执行任何虚假的迭代,这使得它比必须始终迭代整个列表的max或基于列表理解的方法更可取。然而,它的时间复杂度仍然是线性的
此外,您不应该对列表之类的内置名称进行阴影处理。使用Python的自然方法来检查条件是否适用于多个条件中的任何一个:
x = 22
lst = [10, 20, 30] # do NOT use list as a variable anme
if any(y > x for y in lst):
# do stuff with lst
any将在iterable的第一个truthy元素被传递时终止,因此,不会执行任何虚假的迭代,这使得它比必须始终迭代整个列表的max或基于列表理解的方法更可取。然而,它的时间复杂度仍然是线性的
此外,您不应该对列表之类的内置名称进行阴影处理。如果需要,您可以使用过滤器对列表中大于22的项进行过滤
此筛选列表的len大于0,这意味着您的原始列表包含大于22的值
如果需要,您可以使用筛选器并筛选列表中大于22的项
此筛选列表的len大于0,这意味着您的原始列表包含大于22的值
欢迎来到这个网站。不幸的是,你想要什么还不清楚。请澄清:您是否只想知道列表中是否包含大于给定值的元素?还是所有元素的列表?或者如果某个特定元素表示5个元素中的第3个元素更大?欢迎访问该站点。不幸的是,你想要什么还不清楚。请澄清:您是否只想知道列表中是否包含大于给定值的元素?还是所有元素的列表?或者如果某个特定元素表示5个元素中的第3个元素更大?