python - 在 Python 中比较列表切片的最佳方法是什么?
问题描述
我试图在 Python 中比较列表的各个部分,但无济于事?有一个更好的方法吗?
我的代码(尝试让 slice 返回 True)
a = [1,2,3]
# Slice Assignment
a[0:1] = [0,0]
print(a)
# Slice Comparisons???
print(a[0:2])
print(a[0:2] == True)
print(a[0:2] == [True, True])
我的结果
[0, 0, 2, 3]
[0, 0]
False
False
解决方案
由于切片返回列表并且列表会自动按元素进行比较,因此您需要做的就是使用==
:
>>> a = [1, 2, 3, 1, 2, 3]
>>> a[:3] == a[3:]
True
要与固定值进行比较,您需要付出更多努力:
>>> b = [1, 1, 1, 3]
>>> all(e == 1 for e in b[:3])
True
>>> all(e == 1 for e in b[2:])
False
奖励:如果您正在执行大量数组计算,您可能会从使用 numpy 数组中受益:
>>> import numpy as np
>>> c = np.array(b)
>>> c[:3] == 1 # this automatically gets applied to all elements
array([ True, True, True])
>>> (c[:3] == 1).all()
True
推荐阅读
- quarkus - 具有 json-b 和私有属性可见性的 quarkus
- javascript - 使用 javascript 提交验证所需的属性
- javascript - React 子组件未使用来自 redux 的 prop 重新渲染
- python - 如何从 Python 中的嵌套 json 中提取列表项?
- angular - 如何在 Angular 的解析器管道中进行过滤?
- angular - 在列出 chnages 时使用初始值填充 Observable
- python - Keras Lambda 的工作原理
- angular - 在非活动 ngb-tab 上使用带有 GeoJson 的 fitbounds 的 agm-map
- python - 如何将 BeautifulSoup 的输出保存为 csv?
- html - 如何使用 highlight.js 动态更改主题?