欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python中zip函數(shù)有哪些高級(jí)用法

python中zip函數(shù)有哪些高級(jí)用法?

一、定義:

zip([iterable, ...])zip()是Python的一個(gè)內(nèi)建函數(shù),它接受一系列可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)tuple(元組),然后返回由這些tuples組成的list(列表)。若傳入?yún)?shù)的長(zhǎng)度不等,則返回list的長(zhǎng)度和參數(shù)中長(zhǎng)度最短的對(duì)象相同。利用*號(hào)操作符,可以將list unzip(解壓)。

二、用法示例:

讀者看看下面的例子,對(duì)zip()函數(shù)的基本用法就可以明白了:

?123456789

對(duì)于這個(gè)并不是很常用函數(shù),下面舉幾個(gè)例子說明它的用法:

1.二維矩陣變換(矩陣的行列互換)

比如我們有一個(gè)由列表描述的二維矩陣

?1

通過python列表推導(dǎo)的方法,我們也能輕易完成這個(gè)任務(wù)

?12

另外一種讓人困惑的方法就是利用zip函數(shù):

?12345

這種方法速度更快但也更難以理解,將list看成tuple解壓,恰好得到我們“行列互換”的效果,再通過對(duì)每個(gè)元素應(yīng)用list()函數(shù),將tuple轉(zhuǎn)換為list

2.以指定概率獲取元素

?123456789101112131415161718192021222324252627

這個(gè)函數(shù)有個(gè)限制,指定概率的列表必須和元素一一對(duì)應(yīng),而且和為1,否則這個(gè)函數(shù)可能不能像預(yù)想的那樣工作。

這里需要稍微解釋下,先利用random.uniform()函數(shù)生成一個(gè)0-1之間的隨機(jī)數(shù)并復(fù)制給x,利用zip()函數(shù)將元素和他對(duì)應(yīng)的概率打包成tuple,然后將每個(gè)元素的概率進(jìn)行疊加,直到和大于x終止循環(huán)這樣,”a”被選中的概率就是x取值位于0-0.1的概率,同理”b”為0.1-0.4,”c”為0.4-1.0,假設(shè)x是在0-1之間平均取值的,顯然我們的目的已經(jīng)達(dá)到。