首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用每个分割块中的比较运算符检查数字?用Python

如何使用每个分割块中的比较运算符检查数字?用Python
EN

Stack Overflow用户
提问于 2021-09-23 15:24:19
回答 2查看 79关注 0票数 0

我有以下输出:

代码语言:javascript
复制
[3, 3, 3], [4, 4, 4], [2, 4, 4], [4, 5, 1], [5, 5, 5], [2, 4, 3], [5, 5, 1], [4, 5, 4], [4, 5, 1], [2, 2, 2], [3, 3, 3], [5, 5, 5], [2, 2, 2], [3, 5, 3], [2, 2, 2], [1, 3, 1], [3, 3, 2], [2, 4, 4], [5, 5, 5], [3, 5, 3].

如何使用以下公式用python测试每个块:

  • 第一个块数小于或等于第三个块数大于或等于第二个块数?

例如,我可以测试第一个块,以及第三个数字是否在第一个和第二个的范围内(例如,数字5是第三个数字,第一个数字是第二个,第二个数字是8号。,即数字5在2到8之间)。我可以打印FalseTrue

EN

回答 2

Stack Overflow用户

发布于 2021-09-23 15:31:39

比较比使用in range(...)更有效

代码语言:javascript
复制
all([start <= num and num <= end for start, end, num in lst])

性能测试

输入:

代码语言:javascript
复制
lst = [[i, i+1, i+1] for i in range(1000)]

in range(...)**:**的

代码:

代码语言:javascript
复制
%timeit [l[-1] in range(l[0], l[1]+1) for l in lst]
print(all([l[-1] in range(l[0], l[1]+1) for l in lst]))

输出:

代码语言:javascript
复制
1.22 ms ± 161 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
True

与比较

代码:

代码语言:javascript
复制
%timeit [start <= num and num <= end for start, end, num in lst ]
print(all([start <= num and num <= end for start, end, num in lst ]))

输出:

代码语言:javascript
复制
258 µs ± 29.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
True
票数 1
EN

Stack Overflow用户

发布于 2021-09-23 15:30:44

使用range

代码语言:javascript
复制
lst = [3, 3, 3], [4, 4, 4], [2, 4, 4], [4, 5, 1], [5, 5, 5], [2, 4, 3], [5, 5, 1], [4, 5, 4], [4, 5, 1], [2, 2, 2], [3, 3, 3], [5, 5, 5], [2, 2, 2], [3, 5, 3], [2, 2, 2], [1, 3, 1], [3, 3, 2], [2, 4, 4], [5, 5, 5], [3, 5, 3]

>>> [l[-1] in range(l[0], l[1]+1) for l in lst]
[True, True, True, False, True, True, False, True, False, True, 
 True, True, True, True, True, True, False, True, True, True]

comparisons

代码语言:javascript
复制
>>> [l[0]<=l[1]<=l[-1] for l in lst]
[True, True, True, False, True, True, False, True, False, True,
 True, True, True, True, True, True, False, True, True, True]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69302830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档