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

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

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

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

一、定義:

zip([iterable, ...])
zip()是Python的一個內(nèi)建函數(shù),它接受一系列可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個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)]

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

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

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

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

通過python列表推導的方法,我們也能輕易完成這個任務(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解壓,恰好得到我們“行列互換”的效果,再通過對每個元素應用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'

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

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

相關(guān)文章

  • 對python周期性定時器的示例詳解

    對python周期性定時器的示例詳解

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

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

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

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

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

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

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

    python?import模塊時有錯誤紅線的原因

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

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

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

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

    這篇文章主要介紹了pycharm激活碼快速激活及使用步驟,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    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模擬瀏覽器行為,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python簡單進程鎖代碼實例

    Python簡單進程鎖代碼實例

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

最新評論

密山市| 行唐县| 同江市| 龙南县| 故城县| 湟源县| 稷山县| 商河县| 屏边| 柘城县| 湖北省| 本溪| 沛县| 延川县| 汽车| 汕尾市| 澄迈县| 长丰县| 长海县| 安吉县| 峡江县| 涟水县| 江西省| 邮箱| 北流市| 乡城县| 南雄市| 砀山县| 新巴尔虎右旗| 二连浩特市| 大石桥市| 临猗县| 高州市| 华坪县| 阿巴嘎旗| 牡丹江市| 贡嘎县| 宜良县| 济源市| 浑源县| 馆陶县|