itertools內置模塊的過濾妙用

itertools內置模塊的妙用

過濾源迭代器中的元素

Python內置itertools模塊里有一些函數可以過濾源迭代器中的元素。

islice

islice可以在不拷貝數據的前提下,按照下標切割源迭代器。可以只給出切割的終點,也可以同時給出起點和終點,還可以指定步進值。這種切割方式與標準的序列切片及步進機制類似。

import itertoolsvalues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]first_five = itertools.islice(values, 5)
print('First Five:', list(first_five))middle_odds = itertools.islice(values, 2, 8, 2)
print('Middle Odds:', list(middle_odds))>>>
First Five: [1, 2, 3, 4, 5]
Middle Odds: [3, 5, 7]

takewhile

takewhile會一直從源迭代器里獲取元素,直到某元素讓測試函數返回False為止。

import itertoolsvalues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]less_than_seven = lambda x: x // 7 == 0
it = itertools.takewhile(less_than_seven, values)
print(list(it))>>>
[1, 2, 3, 4, 5, 6]

dropwhile

與takewhile相反,dropwhile會一直跳過源序列里的元素,直到某元素讓測試函數返回True為止,然后它會從這個地方開始逐個取值。

import itertoolsvalues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]less_than_seven = lambda x: x // 7 == 0
it = itertools.dropwhile(less_than_seven, values)
print(list(it))>>>
[7, 8, 9, 10]

filterfalse

filterfalse和內置的filter函數相反,它會逐個輸出源迭代器里使得測試函數返回False的那些元素。

import itertoolsvalues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]evens = lambda n: n % 2 == 0filter_result = filter(evens, values)
print('Filter:      ', list(filter_result))filter_false_result = itertools.filterfalse(evens, values)
print('Filter false:    ', list(filter_false_result))>>>
Filter:       [2, 4, 6, 8, 10]
Filter false:     [1, 3, 5, 7, 9]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15728.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15728.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MongoDB 覆蓋索引查詢:提升性能的完整指南

MongoDB 覆蓋索引查詢是一種優化數據庫查詢性能的技術,它通過創建適當的索引,使查詢可以直接從索引中獲取所需的數據,而無需訪問實際的文檔數據。這種方式可以減少磁盤 I/O 和內存消耗,提高查詢性能。 基本語法 在 MongoDB 中&a…

SQL練習題:2.4

建表 # 學生表 create table t_student (stu_id varchar(10),stu_name varchar(10),stu_age datetime,stu_sex varchar(10) );# 課程表 create table t_t_course (c_id varchar(10),c_name varchar(10),c_teaid varchar(10) );# 教師表 create table t_t_teacher (tea…

光速入門python的OpenCV

前言 歡迎來到我的博客 個人主頁:北嶺敲鍵盤的荒漠貓-CSDN博客 本文整理python的OpenCV模塊的關鍵知識點 爭取用最短的時間入門OpenCV 并且做到筆記功能直接復制使用 OpenCV簡介 不浪費時間的介紹: 就是類似于ps操作圖片。 至于為什么不直接用ps,因為只有程序能…

【找出滿足差值條件的下標 I】python

目錄 暴力題解 優化:滑動窗口維護大小值 暴力題解 class Solution:def findIndices(self, nums: List[int], indexDifference: int, valueDifference: int) -> List[int]:nlen(nums)for i in range(n):for j in range(n-1,-1,-1):if abs(i-j)>indexDiffere…

海康威視NVR通過ehome協議接入視頻監控平臺,視頻瀏覽顯示3011超時錯誤的問題解決,即:The request timeout! 【3011】

目錄 一、問題描述 二、問題分析 2.1 初步分析 2.2 查看日志 2.3 問題驗證 1、查看防火墻 2、查看安全組 3、問題原因 三、問題解決 3.1 防火墻開放相關端口 3.2 安全組增加規則 3.3 測試 1、TCP端口能夠聯通的情況 2、TCP端口不能夠聯通的情況 四、驗證 五、云…

「51媒體」如何與媒體建立良好關系?

傳媒如春雨,潤物細無聲,大家好,我是51媒體網胡老師。 與媒體建立良好關系對于企業或個人來說都是一項重要的公關活動。 了解媒體:研究媒體和記者的興趣,提供相關且有價值的信息。 建立聯系:通過專業的方式…

牛客NC324 下一個更大的數(三)【中等 雙指針 Java/Go/PHP/C++】參考lintcode 52 · 下一個排列

題目 題目鏈接: https://www.nowcoder.com/practice/475da0d4e37a481bacf9a09b5a059199 思路 第一步:獲取數字上每一個數,組成數組arr 第二步:利用“下一個排列” 問題解題方法來繼續作答,步驟:利用lintc…

C++進階之路:何為拷貝構造函數,深入理解淺拷貝與深拷貝(類與對象_中篇)

?? 歡迎大家來訪Srlua的博文(づ ̄3 ̄)づ╭?~?? 🌟🌟 歡迎各位親愛的讀者,感謝你們抽出寶貴的時間來閱讀我的文章。 我是Srlua小謝,在這里我會分享我的知識和經驗。&am…

PostgreSQL基礎(三):PostgreSQL的基礎操作

文章目錄 PostgreSQL的基礎操作 一、用戶操作 二、權限操作 三、操作任務

DRM驅動(五)之drm_atomic_state

上節講到《DRM驅動(四)之ADD_FB》調用drmModeAddFB創建drm_framebuffer。然后通過 drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &map); vaddr mmap(0, create.size, PROT_READ | PROT_WRITE,MAP_SHARED, fd, map.offset); 將物理地址map到用戶空間后…

Python中list遍歷的幾種方式之沒有好與不好,只有合適不合適

Python中list遍歷的幾種方式 引言 Python是一種動態、解釋型的高級編程語言,以其簡潔、易讀的語法而廣受歡迎。在Python中,list是一種非常重要的數據結構,它允許存儲一系列的元素,這些元素可以是任何類型。遍歷list是處理數據的…

nginx的Connection refused

問題描述 nginx的錯誤日志中突然出現大量的的Connection refused問題,日志如下: 2020/03/19 09:52:53 [error] 20117#20117: *7403411764 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server:…

解決CLion調試時無法顯示變量值的問題

1 問題描述 使用CLion的時候,調試時無法顯示變量的值,例如: 圖來自StackOverflow。 2 解決辦法 可以嘗試切換調試器解決,在Linux下,CLion支持GDB和LLDB,如果GDB不行,可以切換到LLDB。 切換方…

醫院信息化IT監控一體化運維實踐

作者: 曉風 在醫療信息化日益發展的今天,醫院數據中心的運維工作顯得尤為重要。為了確保醫療系統的穩定運行,保障患者數據的安全與完整,我院在信息化IT監控一體化運維方面進行了深入的探索和實踐。 一、背景與挑戰 我院的機房設備規模已有50…

主動歸檔存儲的策略研討

在媒體與娛樂(M&E)行業中,主動存檔策略對于應對內容的持續需求增長、控制存儲成本膨脹以及實現檔案內容的貨幣化至關重要。以下是對此策略的深入分析: ### 持續的內容需求帶來的挑戰 M&E企業面臨著巨大的挑戰&#xff1…

【Spring】SSM整合_入門代碼實現

1. Maven依賴 在pom.xml中添加SSM框架的依賴 <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.x</version> </dependency>…

軟件杯 題目: 基于深度學習的疲勞駕駛檢測 深度學習

文章目錄 0 前言1 課題背景2 實現目標3 當前市面上疲勞駕駛檢測的方法4 相關數據集5 基于頭部姿態的駕駛疲勞檢測5.1 如何確定疲勞狀態5.2 算法步驟5.3 打瞌睡判斷 6 基于CNN與SVM的疲勞檢測方法6.1 網絡結構6.2 疲勞圖像分類訓練6.3 訓練結果 7 最后 0 前言 &#x1f525; 優…

為什么單片機不能直接驅動繼電器和電磁閥

文章是瑞生網轉載&#xff0c;PDF格式文章下載&#xff1a; 為什么單片機不能直接驅動繼電器和電磁閥.pdf: https://url83.ctfile.com/f/45573183-1247189072-10b6d1?p7526 (訪問密碼: 7526)

java-數組內存分配

在 Java 中&#xff0c;數組是一種基本數據結構&#xff0c;用于存儲一系列相同類型的數據。在內存中&#xff0c;數組分配是一塊連續的內存空間&#xff0c;用于存儲數組中的所有元素。本篇文章將詳細解釋 Java 中數組的內存分配&#xff0c;包括數組的聲明、創建、內存模型以…

memcpy的使?和模擬實現

目錄 一&#xff1a;memcpy的使? memcpy的使?的代碼 二&#xff1a;memcpy函數的模擬實現: memcpy和strcpy的區別 用途&#xff1a; 安全性&#xff1a; 數據類型&#xff1a; 性能&#xff1a; 在字符串中的用法示例&#xff1a; memcpy: strcpy 一&#xff1a;…