最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中zip()函數(shù)用法實(shí)例教程

 更新時(shí)間:2014年07月31日 10:20:36   投稿:shichen2014  
這篇文章主要介紹了Python中zip()函數(shù)用法實(shí)例教程,對Python初學(xué)者有一定的借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Python中zip()函數(shù)的定義及用法,相信對于Python初學(xué)者有一定的借鑒價(jià)值。詳情如下:

一、定義:

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

二、用法示例:

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

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)
[(1, 2, 3), (4, 5, 6)]

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

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

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

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

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

print [ [row[col] for row in a] for col in range(len(a[0]))]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

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

>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> zip(*a)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> map(list,zip(*a))
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

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

2.以指定概率獲取元素

>>> import random
>>> def random_pick(seq,probabilities):
 x = random.uniform(0, 1)
 cumulative_probability = 0.0
 for item, item_probability in zip(seq, probabilities):
 cumulative_probability += item_probability
 if x < cumulative_probability: break
 return item

>>> for i in range(15):
 random_pick("abc",[0.1,0.3,0.6])
 
'c'
'b'
'c'
'c'
'a'
'b'
'c'
'c'
'c'
'a'
'b'
'b'
'c'
'a'
'c'

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

這里需要稍微解釋下,先利用random.uniform()函數(shù)生成一個(gè)0-1之間的隨機(jī)數(shù)并復(fù)制給x,利用zip()函數(shù)將元素和他對應(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á)到。

相關(guān)文章

  • 對python周期性定時(shí)器的示例詳解

    對python周期性定時(shí)器的示例詳解

    今天小編就為大家分享一篇對python周期性定時(shí)器的示例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Pyecharts繪制可視化地球?qū)崿F(xiàn)示例

    Pyecharts繪制可視化地球?qū)崿F(xiàn)示例

    這篇文章主要為大家介紹了Pyecharts繪制可視化地球?qū)崿F(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例

    關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例

    今天小編就為大家分享一篇關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python學(xué)習(xí)之魔法函數(shù)(filter,map,reduce)詳解

    Python學(xué)習(xí)之魔法函數(shù)(filter,map,reduce)詳解

    這篇文章我們將來學(xué)習(xí)一下,Python中的三個(gè)高級函數(shù):filter()、map()、reduce(),這三個(gè)函數(shù)也被稱為魔法函數(shù),感興趣的小伙伴可以了解一下
    2022-04-04
  • python?import模塊時(shí)有錯(cuò)誤紅線的原因

    python?import模塊時(shí)有錯(cuò)誤紅線的原因

    這篇文章主要介紹了python?import模塊時(shí)有錯(cuò)誤紅線的原因及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 如何在django里上傳csv文件并進(jìn)行入庫處理的方法

    如何在django里上傳csv文件并進(jìn)行入庫處理的方法

    這篇文章主要介紹了如何在django里上傳csv文件并進(jìn)行入庫處理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • pycharm激活碼快速激活及使用步驟

    pycharm激活碼快速激活及使用步驟

    這篇文章主要介紹了pycharm激活碼快速激活及使用步驟,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 詳解Python中靜態(tài)類型語言的寫法

    詳解Python中靜態(tài)類型語言的寫法

    眾所周知,python是一種動態(tài)類型語言,但是,從v3.6版本開始,開始支持靜態(tài)類型的寫法,下面小編就來和大家聊聊Python中靜態(tài)類型語言的具體寫法吧
    2023-07-07
  • 淺談python爬蟲使用Selenium模擬瀏覽器行為

    淺談python爬蟲使用Selenium模擬瀏覽器行為

    這篇文章主要介紹了淺談python爬蟲使用Selenium模擬瀏覽器行為,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python簡單進(jìn)程鎖代碼實(shí)例

    Python簡單進(jìn)程鎖代碼實(shí)例

    這篇文章主要介紹了Python簡單進(jìn)程鎖代碼實(shí)例,本文講解了線程和進(jìn)程的相關(guān)知識,然后給出了Python的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04

最新評論

高碑店市| 永安市| 东乌珠穆沁旗| 于田县| 长宁县| 邮箱| 射阳县| 贡觉县| 太保市| 集贤县| 康保县| 德安县| 柳河县| 西丰县| 澎湖县| 武宁县| 丰镇市| 马边| 三原县| 黔西| 石台县| 文安县| 英吉沙县| 剑川县| 华安县| 昌乐县| 晋宁县| 宿松县| 横山县| 黄冈市| 望都县| 镇平县| 大名县| 呈贡县| 三河市| 兴安盟| 芮城县| 鄂托克前旗| 雷山县| 五家渠市| 洛阳市|