python列表代碼_8種高級的Python列表使用技巧,都給你整理好啦(附實操代碼)...

Python中的列表是我們很常見的數據結構之一,也是很強大的數據結構之一!Python列表功能非常豐富,并且具有很多隱藏的技巧沒有被發現。

一、使用Python過濾列表

1.使用Filter()函數

filter()函數采用兩個參數:函數和可迭代項。 在這種情況下,我們將定義一個函數并過濾一個列表。

讓我們用一個例子來嘗試一下!我們將從列表開始,并過濾出所有小于3的項:

original_list?=?[1,2,3,4,5]

def?filter_three(number):

returnnumber?>?3

filtered?=?filter(filter_three,?original_list)

filtered_list?=?list(filtered)

print(filtered_list)

#?Returns[4,5]

讓我們看看這里發生了什么:

我們定義了原始列表

然后定義一個接受參數(“ number”)的函數。如果數字大于3,函數將返回True。

我們定義了一個應用filter函數的項(“ filtered”)。我們的項已篩選,是篩選對象。

最后,我們創建“ filtered_list”,將列表函數替換為filtered對象。

2.具有列表理解

類似地,我們可以用列表理解過濾列表。記住,列表理解是定義和修改列表非常簡單快捷的方式。

讓我們看看如何通過列表理解來完成前面的任務:

original_list = [1,2,3,4,5]filtered_list = [number for number in original_list if number > 3]print(filtered_list)# Return [4,5]

從這兩個示例中我們可以看出,列表理解是一種更簡單,更快捷的過濾列表方法。

二、修改列表

1.使用Map()函數

Python Map函數允許我們將函數應用于可迭代對象中的每個項。

假如我們有一個列表,想返回每個數字的平方。我們可以使用map()函數來實現這一點。讓我們看一下具體操作:

original_list?=?[1,2,3,4,5]

def?square(number):

returnnumber?**?2

squares?=?map(square,?original_list)

squares_list?=?list(squares)

print(squares)

#?Returns[1,?4,?9,?16,?25]

讓我們探討一下這里發生了什么:

首先,我們定義了原始列表和一個返回其參數平方(“number”)的函數。

然后,我們創建一個名為“squares”的新變量,它是map函數的結果,函數和原始列表作為其參數。

最后,我們創建另一個新變量,將list函數應用于squares變量。

這個方法有點復雜!接下來讓我們看看清單理解!

2.具有列表理解

我們可以使用列表理解來修改列表項。這甚至是一個更容易和更優雅的方式來編寫我們的代碼。

讓我們嘗試一下!

original_list?=?[1,2,3,4,5]

squares_list?=?[number?**?2?fornumberinoriginal_list]

print(squares_list)

#?Returns[1,4,9,16,25]

三、將列表與Zip()函數合并

在某些情況下,可能需要合并兩個或多個列表。這就是zip()函數的作用:在每個索引處創建一個包含列表對應元素的對象。

讓我們用一個例子來嘗試一下:

original_list?=?[1,2,3,4,5]

reversed_list?=?original_list[::-1]

print(reversed_list)

#?Returns:?[5,4,3,2,1]

四、顛倒列表

Python列表是有序的數據結構。因此,項目的順序很重要。有時我們可能需要顛倒列表中的項,這可以使用Python切片操作輕松完成。

讓我們用一個例子來嘗試一下:

original_list = [1,2,3,4,5]reversed_list = original_list[::-1]print(reversed_list)# Returns: [5,4,3,2,1]

五、檢查列表中的成員身份

有時我們想查看列表中是否存在某個項。

我們只需使用in運算符即可完成此操作。

games?=?['Yankees','Yankees','Cubs','Blue?Jays','Giants']

def?isin(item,?list_name):

if?item?inlist_name:?print(f"{item}?is?in?the?list!")

else:?print(f"{item}?is?not?in?the?list!")

isin('Blue?Jays',?games)

isin('Angels',?games)

#?Returns

#Blue?Jays在名單上!

#Angels不在名單上!

六、查找列表中最常見的項

如果你想在列表中找到最常見的項。例如,你可能在列表中記錄了正反面游戲的獲勝者,并且想知道哪個贏得最多。

games?=?['heads','heads','tails','heads','tails']

items?=?set(games)

print(max(items,key=?games.count))

讓我們看看這段代碼做什么:

我們用五個正面或反面游戲的結果來定義一個列表;

我們定義了列表中所有項的集合。set()函數過濾掉了列表中的重復項;

最后,我們將max()應用于項目集,并使用key參數作為集合中元素的最高計數。

七、展開列表

有時我們會得到一個列表,其中包含其他列表,也就是表中有表。你可以使用列表理解輕松做到這一點!

讓我們嘗試一下:

nested_list?=?[[1,2,3],[4,5,6],[7,8,9]]

flat_list?=?[i?forjinnested_listforiinj]

print(flat_list)

#?Returns[1,?2,?3,?4,?5,?6,?7,?8,?9]

八、檢查唯一性

如果需要檢查列表中的所有項是否唯一,則可以使用集合的功能來完成此操作!

Python中的集合類似于列表(因為它是可變且無序的),但是它只能包含唯一的項。

為此,我們需要使用一個函數將列表轉換為一個集合,并比較兩個項的長度::

list1?=?[1,2,3,4,5]

list2?=?[1,1,2,3,4]

def?isunique(list):

if?len(list)?==?len(set(list)):

print('Unique!')

else:?print('Not?Unique!')

isunique(list1)

isunique(list2)

#?Returns

#?唯一性

#?不唯一

--END--

希望你學到了以上關于列表的新知識,以及如何以不同的方式運用起來!

【編輯推薦】

【責任編輯:華軒 TEL:(010)68476606】

點贊 0

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

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

相關文章

mysql數據庫實用教程答案

前言 數據庫相關的面試題早已成為了一線互聯網大廠面試的家常菜,如果你對數據庫不太熟悉,我勸你不要輕易面試大廠。那么,為什么數據庫成了大廠面試的家常菜呢?主要原因當然還是海量數據。 無論對于剛入行的小白還是有幾年Java開…

在idea中新建的text文件_開發屬于自己的第一款 IDEA 插件!

往期熱門文章:1、《往期精選優秀博文都在這里了!》2、又一個程序員跑路刪庫跑路被抓了,導致服務器癱瘓 36 個小時!3、恕我直言,有了這款 IDEA 插件,你可能只需要寫 30% 的代碼。。。4、Java8 的 Stream API 的確牛X&am…

mysql數據庫開發的36條軍規

前言 一般的小項目,比如幾百人左右訪問的項目,訪問量幾萬的項目,如果想用緩存,單機實例完全夠用。小黃圖就是用的阿里云256MB配置的Redis緩存,日幾千的訪問量是妥妥夠用的了。Redis號稱可以支撐10wqps,當然…

mysql 替換非中文_mysql中的正則操作 匹配手機號,匹配中文,替換

mysql中的正則操作 匹配手機號,匹配中文,替換正則匹配hy_user表內tel字段的電話號碼:SELECT * FROM hy_user WHERE tel REGEXP "[1][35678][0-9]{9}"SELECT tel FROM hy_user WHERE tel REGEXP "[1][35678][0-9]{9}"SELE…

mysql數據庫引擎怎么看,值得收藏!

什么是Service Mesh 作為Service Mesh技術探索和實踐的先行者,全球第一個真正的Service Mesh項目Linkerd負責人、Buoyant公司創始人兼CEO William Morgan第一次完整地闡述了Service Mesh。按照William Morgan的定義,Service Mesh是一個致力于解決服務間…

mysql error -1_【Mysql】SQLException:?Got?error?-1?from?storage?engine?問題解決!

錯誤信息:Caused by: java.sql.BatchUpdateException: Got error -1 from storageengineatcom.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.atcom.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.atorg.apache.spark.sql.…

Mysql 查詢blob數據很慢_blob存入數據庫很慢

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云數據庫專家保駕護航,為用戶…

mysql數據庫文件位置

01 前言 辛苦奮斗兩個月,秋招終于圓滿收官,拿到了頭條、字節、菜鳥、騰訊、網易的offer,這要多虧了意外得到的這份資料文檔,這么多面試全都靠它了,哈哈~~有好東西還是要分享出來給大家,一起學習呀 Java核心…

mysql的altertable_mysqlaltertable修改表命令詳細介紹

MySQL ALTER語法如下:ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]alter_specification:ADD [COLUMN] create_definition [FIRST | AFTER column_name ]or ADD INDEX [index_name] (index_col_name,...)or ADD PRIMARY KEY (index_col_name,...)or…

mysql數據庫連接失敗,挑戰大廠重燃激情!

一、阿里 (會員中臺) 1. Java 重寫hashcode()是否需要重寫equals(),不重寫會有什么后果 2. 并發 自旋鎖和阻塞鎖的區別公平鎖和非公平鎖的區別jdk中哪種數據結構或工具可以實現當多個線程到達某個狀態時執行一段代碼柵欄和閉鎖的區別如何…

mysql 鏈式查詢_MySQL的鏈接查詢

內連接 inner join ....on...../join ....on... :將兩個表中同時符合on條件的記錄查詢出來 inner可以省略select *from person inner join card on person.cardidcard.cardid;外連接 分為左連接、右連接,完全連接左連接:left join ....on…

大廠必備!不斷提升自己創造溢價的能力

前言: 金九銀十過了金三銀四還會遠嘛,本文后面分享面試題給正準備跳槽,準備找工作的你,這次面試字節跳動也是做了很多的準備,還好順利拿到了offer,特分享一下這次的4面技術面真題,可能有些記不全了&#x…

MySQL安裝板多少錢_MySQL安裝板怎么安裝

展開全部1首先,你需要個安裝包,自個去下0如何在官網下載MySQL 數據庫2第一步中,選擇32313133353236313431303231363533e58685e5aeb931333365666165I accept license term,然后Next3默認選第一項Developer Default ,然后Next4這一步中&#xf…

大廠必備!阿里、字節跳動、京東、騰訊、小米等名企高頻面試

一、前言 k8s全稱kubernetes,是目前大熱的一個可移植容器的編排管理工具,像AWS、Azure、Google、阿里云、騰訊云等主流的公有云提供的都是基于k8s的容器服務,很多其他廠商也在努力跟進中,所以說“kubernetes”是目前容器行業中最…

mysql myisam 鎖機制_MySQL--MyISAM之鎖機制

一、概述MySQL有三種鎖的級別:頁級、表級、行級。MyISAM存儲引擎采用的是表級鎖(table-level locking);MySQL這3種鎖的特性可大致歸納如下:表級鎖:開銷小,加鎖快;不會出現死鎖;鎖定粒度大&#…

大廠架構師經驗分享!成功跳槽字節跳動

前言 毫不夸張地說,JVM是現代軟件工程最成功的案例之一。因為它自帶GC,又有無數可以微調的參數,且運行極其穩定可靠,所以,許多廠商的核心業務系統,才敢放心地用Java編寫,運行在JVM之上。 近幾…

java停車場管理系統程序設計代碼_社區養老服務管理系統,java程序設計

登錄界面菜單功能界面1菜單功能界面2菜單功能界面3社區養老服務管理系統設計與實現springspringMVCmybatis框架對象(javaBean,pojo)設計:服務工單javaBean創建語句如下:package project.model;import org.springframework.format.annotation.DateTimeFor…

大廠面試必問!50w字+的Java技術類校招面試題匯總

前言 剛剛過去的雙十一,讓“高性能”“高可用”“億級”這3個詞變成了技術熱點詞匯,也讓很多人再次萌發成為「架構師」的想法。先問大家一個問題:你覺得把代碼熟練、完成需求加上點勤奮,就能成為架構師么?如果你這么認…

c++客戶端發送加鎖_MySQL語句加鎖分析詳解

前言建立一個存儲三國英雄的hero表:CREATE TABLE hero ( number INT, name VARCHAR(100), country varchar(100), PRIMARY KEY (number), KEY idx_name (name)) EngineInnoDB CHARSETutf8;然后向這個表里插入幾條記錄:INSERT INTO hero V…

大廠面試必問!如何寫出高效率的SQL

前言 Spring框架自2002年誕生以來一直備受開發者青睞,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解決方案。有人親切的稱之為:Spring 全家桶。 很多研發人員把spring看作心目中最好的java項目,沒有之一。所以這是…