国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python 你可能從未聽說過的五種隱藏技巧

開發 后端
大家好,我是小五。今天給大家分享一下:Python中,你可能從未聽說過的5種隱藏技巧。

人生苦短,快學Python

1. ... 對象

沒錯,你沒看錯,就是 "..."

在Python中 ... 代表著一個名為 Ellipsis 的對象。根據官方說明,它是一個特殊值,通常可以作為空函數的占位符,或是用于Numpy中的切片操作。

如:

def my_awesome_function():
...

等同于:

def my_awesome_function():
Ellipsis

當然,你也可以使用pass或者字符串作為占位符:

def my_awesome_function():
pass
def my_awesome_function():
"An empty, but also awesome function"

他們最終的效果都是相同的。

接下來講講...對象是如何在Numpy中體現出作用的,創建一個 3x3x3 的矩陣數組,然后獲取所有最內層矩陣的第二列:

>>> import numpy as np
>>> array = np.arange(27).reshape(3, 3, 3)
>>> array
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])

為了獲取最層矩陣的第二列,傳統方法可能是這樣的:

>>> array[:, :, 1]
array([[ 1, 4, 7],
[10, 13, 16],
[19, 22, 25]])

如果你會用...對象,則是這樣的:

>>> array[..., 1]
array([[ 1, 4, 7],
[10, 13, 16],
[19, 22, 25]])

不過請注意, ... 對象僅可用于Numpy,不適用于Python內置數組。

2.解壓迭代對象

解壓迭代對象是一個非常方便的特性:

>>> a, *b, c = range(1, 11)
>>> a
1
>>> c
10
>>> b
[2, 3, 4, 5, 6, 7, 8, 9]

或者是:

>>> a, b, c = range(3)
>>> a
0
>>> b
1
>>> c
2

同理,與其寫這樣的代碼:

>>> lst = [1]
>>> a = lst[0]
>>> a
1
>>> (a, ) = lst
>>> a
1

你不如跟解壓迭代對象一樣,進行更優雅的賦值操作:

>>> lst = [1]
>>> [a] = lst
>>> a
1

雖然這看起來有點蠢,但就我個人來看,比前一種寫法更優雅一些。

3.展開的藝術

數組展開有各種千奇百怪的姿勢,比如說:

>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> flattened = [elem for sublist in l for elem in sublist]
>>> flattened
[1, 2, 3, 4, 5, 6, 7, 8, 9]

如果你對reduce和lambda有一定了解,建議使用更優雅的方式:

>>> from functools import reduce
>>> reduce(lambda x,y: x+y, l)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

reduce和lambda組合起來,就能針對 l 數組內的每個子數組做拼接操作。

當然,還有更神奇的方式:

>>> sum(l, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> # 其實相當于 [] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9]

沒錯,這樣對二維數組做sum操作,就能使二維數組內的每個元素做“加”法拼接起來。

同樣的道理,如果你對三位數組做sum操作,就能使其變為二維數組,此時再對二維數組做sum操作,就能展開為一維數組。

雖然這個技巧很出色,但我并不推薦使用,因為可讀性太差了。

4.下劃線 _ 變量

每當你在Python解釋器,IPython或Django Console中運行表達式時,Python都會將輸出的值綁定到 _ 變量中:

>>> nums = [1, 3, 7]
>>> sum(nums)
11
>>> _
11
>>>

由于它是一個變量,你可以隨時覆蓋它,或像普通變量一樣操作它:

>>> 9 + _
20
>>> a = _
>>> a
20

5.多種用途的else

很多人都不知道,else 可以被用于許多地方,除了典型的 if else, 我們還可以在循環和異常處理里用到它。

循環

如果需要判斷循環里是否處理了某個邏輯,通常情況下會這么做:

found = False
a = 0
while a < 10:
if a == 12:
found = True
a += 1
if not found:
print("a was never found")

如果引入else,我們可以少用一個變量:

a = 0
while a < 10:
if a == 12:
break
a += 1
else:
print("a was never found")

異常處理

我們可以在 try ... except ... 中使用 else 編寫未捕獲到異常時的邏輯:

In [13]: try:
...: {}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Key is missing

這樣,如果程序沒有異常,則會走else分支:

In [14]: try:
...: {'lala': 'bla'}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Else here

如果你經常做異常處理,你就會知道這個技巧相當方便。

責任編輯:龐桂玉 來源: 快學Python
相關推薦

2020-11-16 12:09:25

Python開發工具

2012-02-01 10:18:23

編程

2023-11-10 08:22:09

雪花算法生成算法分布式

2021-06-07 09:55:58

JavaScript開發 技巧

2025-04-17 08:10:41

2021-07-28 08:00:00

Linux操作系統工具

2020-07-20 07:16:47

Python編程語言工具

2020-09-13 09:03:44

數據策略數據科學數據

2023-10-11 10:40:00

GNOME

2025-05-16 07:56:55

Vue Router架構前端

2016-01-27 10:26:53

JavaScript操作系統

2018-10-11 10:41:12

Go 開發技術

2016-01-26 15:33:07

JavaScriptNodeOS操作系統

2018-09-28 07:00:03

編程語言Go語言

2016-07-11 00:40:30

2024-11-29 15:00:00

Python字符串編程

2022-03-21 11:50:58

醫療物聯網物聯網

2022-10-17 15:47:19

JavaScript開發Web

2014-12-02 10:12:02

BaaSFacebook云服務

2016-10-25 15:36:49

Linux命令工具
點贊
收藏

51CTO技術棧公眾號

国产精品我不卡| 国产精品视频资源| 91精品国产自产在线| 91高清视频在线观看| 久久久久久久久一| 麻豆av一区二区三区| 福利视频导航一区| 国产欧美自拍视频| 亚洲区综合中文字幕日日| 色999日韩欧美国产| 91青青在线视频| 中文字幕亚洲成人| 福利在线一区二区| 欧美私人啪啪vps| 欧美资源在线观看| 涩涩涩久久久成人精品 | 欧美激情a∨在线视频播放| av毛片在线看| 在线免费观看日本欧美| 成人免费看黄网址| av电影天堂一区二区在线观看| 久热国产精品视频一区二区三区| 久久日文中文字幕乱码| 国产精品第13页| 久久久久久久久久久久电影| 美女爽到呻吟久久久久| 国产精品69精品一区二区三区| 欧美专区福利免费| 日韩欧美一区二区三区在线| 亚洲啪啪aⅴ一区二区三区9色| 国产欧美视频在线观看| 亚洲国产一二三精品无码| 免费观看一级欧美片| 欧美午夜精品久久久| 久久久久久五月天久久久久久久久| 国产香蕉久久精品综合网| 男人天堂手机在线视频| 久久国内精品视频| 亚洲看片网站| 日本sm残虐另类| 日本在线高清视频一区| 国产欧美一级| 蜜桃麻豆91| 久久夜色精品| 日本一区免费观看| 久久综合九色| 一级做a爰片久久| 极品少妇一区二区三区精品视频| 亚洲v国产v在线观看| 秋霞国产午夜精品免费视频| 亚洲视频在线二区| 国产精品影视在线| 国产网站免费在线观看| 国产欧美一区二区三区在线老狼| 美女一区二区三区视频| 国产精品国模大尺度视频| 四虎国产精品成人免费4hu| 椎名由奈av一区二区三区| 含羞草激情视频| 天天免费综合色| 国内在线精品| 日韩欧美一区二区不卡| 成人小电影网站| 久久99热精品这里久久精品| 精品资源在线| 国产欧美精品一区二区| 极品av少妇一区二区| 国产视频自拍一区| 欧美xx视频| 久久九九全国免费精品观看| 9999久久久久| 国产欧美久久久久久| 亚洲国产免费| 永久免费看av| 欧美激情在线看| 中文字幕大看焦在线看| 51久久夜色精品国产麻豆| 亚洲精品日产| 久久久久久久一| 国产精品久久久久久久免费观看| 精品综合久久久| 日本电影久久久| 久久久亚洲影院| 欧美在线亚洲综合一区| 欧美成人h版在线观看| 欧美日韩一本| 粉嫩av一区二区三区免费观看| 日韩国产在线一| 国产视频一视频二| 夜夜操天天操亚洲| 成人午夜在线影视| 欧美成人一二三| 午夜精品视频| 老太脱裤子让老头玩xxxxx| 一区二区激情视频| 污污的网站在线看| 欧美激情中文字幕乱码免费| 欧美视频一区| 国产成人精品视频免费看| 午夜av区久久| 自拍偷拍欧美视频| 国产精品老女人精品视频| 国产高清一区二区| 中文字幕综合在线观看| 一区二区三区在线视频免费观看| 成人免费观看视频大全| 日韩在线欧美在线| 在线观看一区视频| 青青草av网站| 555www色欧美视频| 中文字幕一区二区三区中文字幕 | 亚洲福利视频二区| 台湾色综合娱乐中文网| 日本一区二区三区www| 国产精品区一区二区三区| 日本资源在线| 国产精品一区二区三区毛片淫片 | 国产精品丝袜高跟| 国内精品久久久久影院一蜜桃| 中文字字幕在线中文乱码电影| 国产亚洲福利一区| 激情自拍一区| 探花国产精品| 欧美成人激情图片网| 三级不卡在线观看| 宅男宅女性影片资源在线1| www.欧美免费| 蜜臀av亚洲一区中文字幕| 十九岁完整版在线观看好看云免费| 久久精品亚洲一区| 精品中文av资源站在线观看| 午夜成人影视| 91精品国产色综合| 成人国产精品免费观看视频| 韩国中文字幕在线| 99精品国产高清一区二区| 亚洲美女视频一区| 亚洲精品国产九九九| 妺妺窝人体色www看人体| 欧美美乳视频| 91黑丝在线| 国产一区二区三区四区福利| 国产日韩精品一区二区浪潮av | 成人中文字幕在线观看| 久久久亚洲网站| 毛片一区二区三区| 一广人看www在线观看免费视频| 国产91免费观看| 日韩第一区第二区| 日韩不卡一二区| 欧美成人精品1314www| 欧美日韩在线播放三区| 久久一本综合| 日本不卡1区2区3区| 欧美国产日韩二区| 久久亚洲精品小早川怜子| jizzyou欧美16| 国产v片免费观看| 久久精品亚洲国产| 日本一区二区三区四区在线视频| 国产亚洲高清一区| 免费男同深夜夜行网站| 久久天天躁日日躁| 久久久久国产精品免费免费搜索| 日韩在线亚洲| 天天操,天天操| 亚洲97在线观看| 亚洲欧美日韩久久精品| 自拍亚洲一区| 在线黄色.com| 国产精品日韩一区二区| 欧美一区二区黄| 久久99精品网久久| 日韩一级二级| 色悠悠久久综合网| 欧美一区二区三区四区在线| 国产一区日韩欧美| 九义人在线观看完整免费版电视剧| 国产精品一区二区三区四区五区 | 中文字幕在线乱| 中文字幕日韩av| 国产欧美一区二区精品秋霞影院| 日韩成人一级| 小草在线视频在线免费视频| 狠狠色伊人亚洲综合网站色| 亚洲大胆人体av| 久久综合九色综合欧美就去吻| 欧美亚洲tv| 国产精品久久久久一区二区国产| 日本一区二区视频| 日韩视频永久免费观看| 亚洲精品欧美在线| 尹人成人综合网| 欧美日韩女优| 久草在线免费福利| 一区二区三区四区五区视频| 欧美黑人xxxx| 欧美日韩一区二区三区免费看| 久久99久久久久| 风间由美性色一区二区三区四区|