日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

np合并 python_这15个tips,带你领略 Python 的简洁和优雅

發布時間:2023/12/15 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 np合并 python_这15个tips,带你领略 Python 的简洁和优雅 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文通過15個具體的例子,帶你領略 Python 的簡潔和優雅。

下文中'P'即表示'Pythonic',很 Python 的寫法,'NP'也就是相反,不是很'Pythonic'的寫法。

1、為多個變量賦值

### NP:

a = 2

b = 5

c = 12

### P:

a,b,c = 2,5,12

2、變量值互換

a = 50

b = 25

### NP:

temp = a

a = b

b = temp

### P:

a,b = b,a

上面的例子通過了元組的pack和unpack完成了對a,b的互換,避免了使用臨時變量temp,而且只用了一行代碼。

3、鏈式比較

a = 50

b = 25

### NP:

0<= b and b<=a and a<100

### P:

0 <= b <= a < 100

后者的寫法更接近數學表達式。

4、any/all函數

any和 all是 Python的內置函數。對于 any函數,可迭代參數的任何一個元素為真就返回 True,否則返回 False。對于 all函數,如果可迭代參數的所有元素為真(或迭代器為空),返回 True,否則返回 False。

### NP:

xyz = [4641951.185 ? 1393053.923 ? 4133281.067]

for v in xyz:

? ?if 0.0==v:

? ? ? ?return False

return True

### P:

return all(xyz)

5、用in代替or簡化判斷

同樣是多重判斷問題,判斷某個變量是否為多個可能取值之一

### NP:

if 'green'==s0 or 'red'==s0 or 'blue'==s0:

? ?return True

else:

? ?return False

### P:

return s0 in ('green', 'red', 'blue')

6、if/else 三目運算

### NP:

if age > 18:

? ?ss = 'adult'

else:

? ?ss = 'child'

### P:

ss = 'adult' if age > 18 else 'child'

后者的寫法簡單易懂,僅需一行代碼就完成了常規寫法4行代碼的功能。

7、字符串列表的連接

lst_str = ["Python", "is", "a", "good", "language"] ?

### NP1:

ss = ''

for s0 in lst_str:

? ?ss += s0 + ' '

### NP2:

ss = '%s %s %s %s %s'%(lst_str[0], lst_str[1], lst_str[2], lst_str[3], lst_str[4])

### P:

ss = ' '.join(lst_str)

使用 join方法可以指定間隔字符(串)將字符串列表合并成一個字符串。

8、匹配字符串開頭/結尾

fname1 = 'python.jpg'

fname2 = 'folwer.bmp'

fname3 = 'readme.txt'

### P:

fname1.startswith('python') ? ? ? ? ? #True

fname2.endswith('.jpg') ? ? ? ? ? ? ? ?#False

fname2.endswith(('.jpg', '.bmp')) ? ? #True

fname3.endswith(('.jpg', '.bmp')) ? ? ?#False

9、列表推導式

從列表中找出符合條件的元素組成新的列表

lst0 = [11, 22, 24, 87, 70]

### NP:

lst1 = []

for v in lst0:

? ?if v>30:

? ? ? ?lst1.append(v)

### P:

lst1 = [ v for v in lst0 if v>30 ]

可以結合上面兩條tips,可以實現快速找出文件夾下指定類型的文件,例如:

picfiles = [nm for nm in os.listdir(mydir) if nm.endswith( ('.jpg', '.bmp', '.tiff', '.gif', '.png') ) ]

10、使用zip同步處理多個列表

當想要對多個列表對應的元素進行操作時

income = [201, 198, 195, 210, 199]

cost_rent = [80, 83, 77, 81, 80]

cost_food = [47, 64, 53, 51, 79]

balance = []

### NP:

nlen = len(income)

for i in range(nlen):

? ?balance.append(income[i] - cost_rent[i] - cost_food[i])

### P:

for i0, cr, cf in zip(income, cost_rent, cost_food):

? ?balance.append(i0 - cr - cf)

zip(a,b) 會生成一個可返回元組 (x,y) 的迭代器,其中x來自a,y來自b。一旦其中某個序列到底結尾,迭代宣告結束。因此迭代長度跟參數中最短序列長度一致。

11、列表去重

### NP:

lst_new = []

for v in lst_old:

? ?if not v in lst_new:

? ? ? ?lst_new.append(v)

### P:

lst_new = list(set(lst_old))

12、文件打開與關閉/上下文管理

### NP:

fp = open('result.txt', 'w')

try:

? ?fp.write('just for fun!')

except IOError:

? ?print('something error')

finally:

? ?fp.close()

### P:

with open('result.txt', 'w') as fp:

? ?fp.write('just for fun!')

with 關鍵字實現了上下文管理器,是一種更簡潔也更安全的操作方法。上例中當離開 with 代碼塊的時候,系統會自動調用 fp.close() 方法關閉文件, 哪怕中間遇到異常,close 方法也會被調用。

13、Enumerate

枚舉函數,用于枚舉可迭代對象,并且同時返回元素的下標索引值。

如果你想在迭代一個序列的同時,得到被處理元素的索引下標。內置的 enumerate() 函數可以很好的解決這個問題:

array = ['Stone', 'Tom', 'Jobs', 'Jack']

### NP:

narr = len(array)

for i in range(narr):

? ?print (i, array[i])

### P:

for i, a0 in enumerate(array):

? ?print (i, a0)

#0 Stone

#1 Tom

#2 Jobs

#3 Jack

14、對齊字符串

有時,你想通過某種對齊方式來格式化字符串,輸出一些提示信息

ss = 'Summary'

### NP:

print ('%s%s%s', '-'*20, ss, '-'*20)

### P:

print (ss.center(50,'-'))

#--------------------Summary--------------------

類似地,想讓字符串左對齊或者右對齊,可以用 .ljust(50, '-') 或 rjust(50, '-')

15、解包

解壓列表/元祖的元素,賦值給不同的變量

lst = ['jack', 18, 'Python', 'Good']

### NP:

name = lst[0]

age = lst[1]

lang = lst[2]

score = lst[3]

### P:

name, age, lang, score = lst

如果想解包一個長列表,只得到其中部分元素,例如第一個和最后一個元素:

### P:

head, *mid, tail = lst

該例子中,除了頭、尾元素之外,中間不受關注的元素作為一個子列表全部賦值給了 mid 。

-END-

長按識別關注 | GitPython

總結

以上是生活随笔為你收集整理的np合并 python_这15个tips,带你领略 Python 的简洁和优雅的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 香蕉久久精品日日躁夜夜躁 | 99自拍偷拍视频 | 国产欧美综合一区二区三区 | 91国产一区二区 | 西比尔在线观看完整视频高清 | 国产精品乱码久久久久久久久 | 久久精品视频16 | 91在线在线| 精品欧美一区二区精品久久 | 在线你懂得 | 日韩高清黄色 | 亚洲宗人网 | 亚洲视频天堂 | 在线欧美一区 | 少妇人妻精品一区二区三区 | 国产高潮失禁喷水爽到抽搐 | 麻豆短视频 | 日本免费不卡视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 娇妻之欲海泛舟无弹窗笔趣阁 | 精品久久久久久久久久久久久久 | 少妇一级淫片免费观看 | 久久久久久穴 | 樱空桃在线 | 欧美91视频 | 淫僧荡尼巨乳(h)小说 | 97久久久久 | 欧美丰满熟妇bbb久久久 | 99热激情 | 人人澡超碰碰 | 中文成人无字幕乱码精品区 | www.好了av.com | 久久精品久久久 | 麻豆亚洲 | 五月天丁香久久 | 蜜桃视频在线播放 | 亚洲av成人无码久久精品老人 | 欧美图片自拍偷拍 | 成人一区二区在线 | 嫩草免费视频 | 疯狂做爰高潮videossex | 国产精品无码一区二区三 | a视频免费观看 | 德国性经典xxxx性hd | 91动态图 | 黑人精品欧美一区二区蜜桃 | 91香蕉嫩草 | 美女黄视频大全 | 99伊人网| 亚洲精品www久久久久久广东 | 91看视频 | 国产精品久久久久久白浆 | 国产精品99| 久久黄色小视频 | 狠狠艹av| 丰满多毛的大隂户视频 | 国产一区av在线 | 温柔少妇的高潮呻吟 | 欧美日韩一区二区电影 | 色爱综合区| 揄拍成人国产精品视频 | 91精品91| 国产免费一级视频 | 国产91沙发系列 | 91avcom| 日本少妇一区二区三区 | 国产美女免费 | 国产一级做a爱片久久毛片a | 中文字幕一区二区三区人妻不卡 | 一级免费片 | 香蕉久久国产av一区二区 | 最新色网站 | 91免费看网站 | 香蕉视频色版 | 色狠狠干 | 黑人vs日本人ⅹxxxhd | 亚洲AV无码精品久久一区二区 | 毛片网站入口 | 久久久久久欧美精品se一二三四 | 成人福利网址 | 一区二区xxx | 日韩污视频在线观看 | 欧美挤奶吃奶水xxxxx | 午夜影院免费 | 亚洲高清无码久久 | 亚洲国产一区在线观看 | 国产专区一区 | 日韩在线视频免费播放 | 娇妻玩4p被三个男人伺候电影 | 先锋影音av资源在线观看 | 午夜尤物 | 人与动物黄色片 | 日本变态折磨凌虐bdsm在线 | 成年女人18级毛片毛片免费 | 欧美中文字幕第一页 | 日本www视频在线观看 | 熟女人妻一区二区三区免费看 | 少妇又色又紧又爽又刺激视频 | 精品国产三级a∨在线 |