溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中一些不為人知的使用技巧

發(fā)布時(shí)間:2020-11-19 14:51:47 來(lái)源:億速云 閱讀:99 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章為大家展示了Python中一些不為人知的使用技巧,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

Hello World

對(duì)于大部分程序員來(lái)說(shuō),第一個(gè)程序應(yīng)該都是 "Hello World!" 了,Python 直接將該入門程序做成了一個(gè)包。

In [1]: import __hello__
Hello world!

交換變量

一行代碼搞定變量交換,無(wú)需臨時(shí)變量,也無(wú)需異或操作。

In [1]: x,y = y,x

 變量比較

對(duì)于變量的連續(xù)比較,Python 是支持的比較好的。

In [24]: x = 10

In [25]: 5 < x < 20
Out[25]: True

In [26]: 11 < x < 20
Out[26]: False

 列表推導(dǎo)式

In [2]: list = list(range(10))
# 取偶數(shù)
In [3]: even = [x for x in list if x % 2 == 0]

In [4]: even
Out[4]: [0, 2, 4, 6, 8]

合并字符串

很多語(yǔ)言合并字符串大都是通過(guò) + 號(hào)來(lái)實(shí)現(xiàn)的,但由于字符串的不可變性,不斷合并后的字符串會(huì)不斷的申請(qǐng)新的內(nèi)存。

In [5]: x = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

In [6]: ''.join(x)
Out[6]: 'abcdefg'

列表切片

In [2]: x
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 取索引為 2 到 8 的值,步長(zhǎng)為 2
In [4]: x[2:8:2]
Out[4]: [2, 4, 6]

# 步長(zhǎng)為負(fù)值,表示從后面取值
In [6]: x[::-2]
Out[6]: [9, 7, 5, 3, 1]

反轉(zhuǎn)字符串

In [7]: x = 'Hello Python!'

In [8]: x[::-1]
Out[8]: '!nohtyP olleH'

同時(shí)獲取下標(biāo)和值

x = list(range(10))
for index, value in enumerate(x):
 print(index, value)

0x08 zip()函數(shù)

In [7]: a = [1,2,3]

In [8]: b = [4,5,6]

In [9]: c = [7,8,9]

In [16]: list(zip(a, b, c))
Out[16]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

# 逆操作
In [18]: zz = (zip(a, b, c))

In [19]: x, y, z = zip(*zz)

In [20]: x,y,z
Out[20]: ((1, 2, 3), (4, 5, 6), (7, 8, 9))

# 合并列表相鄰項(xiàng)
In [22]: a = [1, 2, 3, 4, 5, 6]

In [23]: list(zip(a[::2], a[1::2]))
Out[23]: [(1, 2), (3, 4), (5, 6)]

閉包

def outer(x):
 def inner(y):
  # 在內(nèi)函數(shù)中 用到了外函數(shù)的變量
  nonlocal x
  x += y
  return x + y

 # 外函數(shù)的返回值是內(nèi)函數(shù)的引用
 return inner

fun = outer(10)

print(fun(10)) # 30
print(fun(10)) # 40
print(fun(10)) # 50

上述內(nèi)容就是Python中一些不為人知的使用技巧,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI