Python知識之列表的十個小技巧分享
一、提要
隨著 python 的普及,越來越多的功能可用于 python 編碼。使用此功能可以用更少的行和更清晰的方式編寫代碼。
在本文中,我們將看到 10 個這樣的 Python 技巧,它們非常常用且最有用。
二、十個典型功能
2.1 倒排列表 reverse()
我們可以使用 reverse() 函數(shù)簡單地反轉(zhuǎn)給定列表。它處理列表中存在的數(shù)字和字符串?dāng)?shù)據(jù)類型。
示例代碼:
List = ["Shriya", "Lavina","Sampreeti" ] List.reverse() print(List)
結(jié)果:
['Sampreeti', 'Lavina', 'Shriya']
2.2 更換列表排列順序
如果您需要以不同的順序打印列表的值,您可以將列表分配給一系列變量,并以編程方式?jīng)Q定您要打印列表的順序。
示例代碼:
List = [1,2,3] w, v, t = List print(v, w, t ) print(t, v, w )
輸出結(jié)果
(2, 1, 3) (3, 2, 1)
2.3 函數(shù)的生成器參數(shù)
在函數(shù)內(nèi)部使用生成器,我們可以直接在函數(shù)內(nèi)部使用生成器來編寫更短、更簡潔的代碼。在下面的示例中,我們使用生成器直接作為 sum 函數(shù)的參數(shù)來求和。
示例代碼:
sum(i for i in range(10) )
運(yùn)行結(jié)果:
45
2.4 拉鏈函數(shù)合并
使用 zip() 函數(shù)
當(dāng)我們需要連接許多迭代器對象(如列表)以獲得單個列表時,我們可以使用 zip 函數(shù)。結(jié)果顯示每個項(xiàng)目都與其他列表中的相應(yīng)項(xiàng)目分組。
示例代碼:
Year = (1999, 2003, 2011, 2017) Month = ("Mar", "Jun", "Jan", "Dec") Day = (11,21,13,5) print zip(Year,Month,Day)
運(yùn)行結(jié)果:
[(1999, 'Mar', 11), (2003, 'Jun', 21), (2011, 'Jan', 13), (2017, 'Dec', 5)]
2.5 交換兩個變量值
使用一行代碼交換兩個數(shù)字,數(shù)字交換通常需要將值存儲在臨時變量中。但是通過這個 python 技巧,我們可以使用一行代碼而不使用任何臨時變量來做到這一點(diǎn)。
示例代碼:
x,y = 11, 34 print x print y x,y = y,x print x print y
運(yùn)行結(jié)果:
11 34
34 11
2.6 矩陣轉(zhuǎn)置
轉(zhuǎn)置矩陣涉及將列轉(zhuǎn)換為行。在 python 中,我們可以通過設(shè)計一些循環(huán)結(jié)構(gòu)來遍歷矩陣中的元素并更改它們的位置來實(shí)現(xiàn)它,或者我們可以使用以下涉及 zip 函數(shù)的腳本與 * 運(yùn)算符一起解壓縮一個列表,該列表成為給定的轉(zhuǎn)置矩陣。
示例代碼:
x = [[31,17], [40 ,51], [13 ,12]] print (zip(*x))
運(yùn)行結(jié)果:
[(31, 40, 13), (17, 51, 12)]
2.7 打印字符串N次
打印一個字符串 N 次,任何編程語言中多次打印字符串的常用方法是設(shè)計一個循環(huán)。
但是 python 有一個簡單的技巧,在 print 函數(shù)中涉及一個字符串和一個數(shù)字。
示例代碼:
str ="Point"; print(str * 3);
運(yùn)行結(jié)果:
PointPointPoint
2.8 倒排列表
列表切片是python中一種非常強(qiáng)大的技術(shù),它也可以用來反轉(zhuǎn)列表中元素的順序。
示例代碼:
#Reversing Strings list1 = ["a","b","c","d"] print list1[::-1] # Reversing Numbers list2 = [1,3,6,4,2] print list2[::-1]
運(yùn)行結(jié)果:
['d', 'c', 'b', 'a'] [2, 4, 6, 3, 1]
2.9 尋找整數(shù)的因子
當(dāng)我們需要一個數(shù)的因數(shù),需要進(jìn)行一些計算或分析時,我們可以設(shè)計一個小循環(huán),用迭代索引檢查該數(shù)的可分性。
示例代碼:
f = 32 print "The factors of",x,"are:" for i in range(1, f + 1): ? ?if f % i == 0: print(i)
運(yùn)行結(jié)果:
The factors of 32 are: 1 2 4 8 16 32
2.10 查看變量占用內(nèi)存
檢查內(nèi)存使用情況:我們可以使用 getsizeof() 函數(shù)檢查我們聲明的每個變量消耗的內(nèi)存量。
正如您在下面看到的,不同的字符串長度將消耗不同的內(nèi)存量。
示例代碼:
import sys a, b, c,d = "abcde" ,"xy", 2, 15.06 print(sys.getsizeof(a)) print(sys.getsizeof(b)) print(sys.getsizeof(c)) print(sys.getsizeof(d))
運(yùn)行結(jié)果:
38 35 24 24
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
用pytorch的nn.Module構(gòu)造簡單全鏈接層實(shí)例
今天小編就為大家分享一篇用pytorch的nn.Module構(gòu)造簡單全鏈接層實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子
今天小編就為大家發(fā)信息一篇Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08python命令行交互引導(dǎo)用戶輸入一個數(shù)字實(shí)現(xiàn)
這篇文章主要為大家介紹了python命令行交互引導(dǎo)用戶輸入一個數(shù)字實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11python非對稱加密算法RSA實(shí)現(xiàn)原理與應(yīng)用詳解
RSA加密算法是一種非對稱加密算法,RSA算法的安全性基于大數(shù)分解的困難性,即已知兩個大素數(shù)p和q的乘積n,求解p和q非常困難,RSA算法廣泛應(yīng)用于數(shù)據(jù)加密和數(shù)字簽名等領(lǐng)域,本文將詳細(xì)介紹如何在Python中使用RSA算法進(jìn)行加密和解密,需要的朋友可以參考下2024-09-09Python如何查找文件夾中含有指定關(guān)鍵字的文件
這篇文章主要介紹了Python如何查找文件夾中含有指定關(guān)鍵字的文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08我對PyTorch dataloader里的shuffle=True的理解
這篇文章主要介紹了我對PyTorch dataloader里的shuffle=True的理解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程
這篇文章主要介紹了在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程,UDP編程是Python網(wǎng)絡(luò)編程部分的基礎(chǔ)知識,示例代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04解決Python爬蟲錯誤之twisted.web.error.SchemeNotSupported: Unsu
這篇文章主要介紹了解決Python爬蟲錯誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02