網站首頁 編程語言 正文
python list 查找與過濾方法
查找list中是否有某個元素
這個是一個最基礎的操作,使用in操作符,如下所示:
3 in [1, 2, 3] # => True
過濾一個集合
過濾出滿足一定條件的所有元素,可以使用列表表達式或者生成器表達式:
matches = [x for x in lst if fulfills_some_condition(x)]
matches = (x for x in lst if x > 6)
后者返回一個生成器,你可以將它想象成一個延后列表(lazy list)僅僅當你迭代它的時候才會被創建。順便說一下,第一個在py2中等價于
matches = filter(fulfills_some_condition, lst)
返回一個list。在python3中,filter不會返回一個list,而是一個類似于生成器的對象。
查找第一個匹配項
如果您只想要匹配條件的第一個元素(但是您還不知道它是什么),那么使用for循環是可以的(也可以使用else子句,但是都不太推薦)。推薦使用:
next(x for x in lst if ...)
如果沒有找到匹配項,則返回第一個匹配項或引發StopIteration異常?;蛘?,您可以使用
next((x for x in lst if ...), [default value])
查找一個item的位置
查找item位置的基礎功能可以使用python數組的的index方法
[1,2,3].index(2) # => 1
[1,2,3].index(4) # => ValueError
但是,請注意,如果您的數組中有重復值,.index總是返回最前面的索引:……
[1,2,3,2].index(2) # => 1
如果有重復,你想要所有的索引,你可以使用enumerate()代替:
[i for i,x in enumerate([1,2,3,2]) if x==2] # => [1, 3]
復雜數據查詢案例
假如有如下類型的數據
list=[{'id': '2', 'position': [3148.18, 4142.69]},{'id': '1', 'position': [3148.19, 142.69]}]
我想根據id來查找,并且獲得指定id的position。
list[next(index for (index, d) in enumerate(list1) if d["id"] == '2')]['position']
python過濾列表的技巧
過濾列表可以用循環、列表解析以及filter等。
下面以列表過濾出大于3的元素。
#列表過濾的幾種方法
#過濾大于3的元素
#1.利用循環
def filterList1(*lst):
b=[]
for i in lst:
if i>3:
b.append(i)
return b
f1=filterList1(1,2,3,4,5,6)
print(f1)
#2.利用列表內計算
def filterList2(*lst):
b=[i for i in lst if i >3]#列表解析
return b
f2=filterList2(1,2,3,4,5,6)
print(f2)
#3.利用filter
def filterList3(*lst):
b=filter(lambda x:x>3,lst)
return b
f3=filterList3(1,2,3,4,5,6)
print(list(f3))#注意此句。
輸出是:
總結
原文鏈接:https://blog.csdn.net/qq997843911/article/details/93855706
相關推薦
- 2022-02-22 Element-UI二次封裝實現TreeSelect 樹形下拉選擇組件
- 2022-06-01 C語言?柔性數組的使用詳解_C 語言
- 2023-02-18 SQLserver中的any和all運算符的用法_MsSql
- 2022-01-19 C++ 獲取當前時間毫秒數
- 2021-12-14 RHCE橋接,免密登錄和修改端口號介紹_Linux
- 2022-07-07 ASP.Net使用System.Security.Principal模擬用戶_實用技巧
- 2022-03-24 C語言常見的文件操作函數_C 語言
- 2022-05-13 iOS msgSend消息發送流程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支