導航:首頁 > 編程語言 > zip在python中意思

zip在python中意思

發布時間:2022-07-19 20:19:45

『壹』 python zip 是什麼

zip就是把2個數組糅在一起
x=[1, 2, 3, 4, 5 ]
y=[6, 7, 8, 9, 10]
zip(x, y)就得到了
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

比如你有2組坐標,你想兩兩對應的相加,那麼zip函數就很有用了。
再比如,你有2個數組A,B,A存了班級里的人的名字,B是每個人的考試分數,你需要通過某個人的名字來查考試分數,那你需要一個字典,zip可以很方便地幫你建立字典:
>>> x=['bob','tom','kitty']
>>> y=[80,90,95]
>>>d=dict(zip(x,y))
[('bob', 80), ('tom', 90), ('kitty', 95)]
>>> d['bob']
返回80,多方便啊

『貳』 關於 python 的zip

def myzip(*seqs): #輸入參數是一組類似字元串的東西
reqs = [list(s) for s in seqs] #將每個輸入參數變成一個LIST,沒有用上
res = []
while all(seqs): #只要所有字元串都不為空就繼續做
res.append(tuple(s.pop(0) for s in seqs)) #這里seqs應該用reqs來替換,功能是選擇seqs里的每一組,如果其中有任何一組不完整,則退出循環
return res
這個函數似乎是用來采樣的。將一個以列為單位的矩陣,轉換成按行為單位的。

這個函數似乎是用來采樣的。將一個以列為單位的矩陣,轉換成按行為單位的。

whileall(seqs)中all是一個allistrue的意思。

tuple這種結構是只讀的,比[]list效率要高些。

s.pop(0)forsinseqs是從seqs依次取出s,再從s中彈出第一個元素。通常list才可支持pop方法。

所以這里seqs疑似應該用reqs代替

whileany(xxx),這個與all相似,只是any的含義是只要xxx中有一個為True就為True,而all是只要有一個為False就為False

『叄』 python 當中的zip( )函數到底是幹嘛的

這個可以理解為拉鏈,將兩個list拉到一起來,每個對應元素做一定操作後,合並成一個list.
比如:
zip([1,2,3],['a','b','c'])
結果是
[(1,
'a'),
(2,
'b'),
(3,
'c')]

『肆』 python中zip函數詳解

a=[1,2,3,4,5,6,7,8,9]
b=[5,9,2,4,5,7,3,1,7]
c=list(zip(a,b))#打包
print(c)
輸出內容:[[1,5],[2,9],[3,2],[4,4],[5,5],[6,7],[7,3],[8,1],[9,7]]
d=list(zip(*c))#解包
print(d)
輸出內容:[[1,2,3,4,5,6,7,8,9],[5,9,2,4,5,7,3,1,7]]

『伍』 python怎樣壓縮解壓縮ZIP文件

1、python使用zipfile模塊壓縮和解壓ZIP文件
2、讀取zip文件
首先,通過zipfile模塊打開指定zip文件,如:
zpfd = zipfile.ZipFile(path, mode='r')
對於zipfile,其標志與open所用的打開文件標志有所不同,不能識別 'rb'。
然後,讀取zip文件中的內容,zipfile對象提供一個read(name)的方法,name為zip文件中的一個文件入口,執行完成之後,將返回讀出的內容,如:
for filename in zpfd.namelist():
tmpcont = zpfd.read(filename)
print 'len(tmpcont)', 'tmpcont'
需要注意的是,讀取zip文件時,只能讀取內容
3、寫入zip文件
首先,需要zipfile模塊寫打開或創建zip文件,如:
zpfd = zipfile.ZipFile(path, mode='w')
寫打開是標志可以為'w'或'a'('a'表示寫入一個zip文件), 或者傳入第三個參數cmopression壓縮標志
compression=zipfile.ZIP_DEFLATED 需要導入zlib模塊
compression=zipfile.ZIP_STORED則表示只對文件進行打包,並不壓縮
寫入有兩種方式,一種是直接寫入一個已經存在的文件,可使用zipfile對象中write(filename, arcname, compress_type)第一個參數為文件名,第二個參數指寫入zip文件中的文件名,默認與filename一致,第三個參數壓縮標志可以覆蓋打開zipfile時的使用參數;另一種是寫入一個字元串,可使用zipfile對象中的writestr(zinfo_or_arcname, bytes),第一個參數是zipinfo對象或寫到zip文件中的壓縮名,第二個參數是待寫入的字元串
4、最後,對於打開的zipfile對象需要進行關閉,從而使得寫入內容真正寫入磁碟,即:
zpfd.close()

『陸』 Python版本3.3有zip這個用法嗎

當然是有的!下面具體分析不同:

zip方法在Python 2 和Python 3中的不同

為何有這種不同
更多註解

問題一:zip方法在Python 2 和Python 3中的不同
Python 2 的代碼演示:
$ python2
>>> a = zip((1, 2), (3, 4))
>>> a
[(1, 2), (3, 4)]
# 可以看到這里返回的是一個list

Python 3 的代碼演示:
$ python3
>>> a = zip((1, 2), (3, 4))
>>> a
<zip object at 0x1007096c8>
# 可以看到這里返回的是一個對象,這里就是2和3的不同點
>>> dir(a) # 查看a的相關屬性
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__rece__', '__rece_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
# 這里值得注意的是 '__iter__' 和 '__next__' 方法,說明a是一個支持遍歷的對象
# 既然知道了a是一個支持遍歷的對象,我們也就基本明白了a的用法了
### 和Python2的區別(一):返回的是一個支持遍歷的對象,而不是一個list本身
>>> for i in a: print i # in 方法
...
(1, 3)
(2, 4)
>>> next(a) # 我們測試__next__方法
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
StopIteration # 說明next方法是支持的,但是這里也說明了對象只能遍歷一次
>>> a = zip((1, 2), (3, 4)) # 這里需要重新賦值,因為這個對象只能遍歷一次
>>> next(a)
(1, 3) # 運行良好
### 返回的對象支持遍歷的操作

問題二:為何有這種不同
我想最重要的原因是節約了不少的內存吧。Python的運行效率和編譯類型的語言自然是沒法比,但是能優化就優化一點吧~誰不想有更高的追求呢。
問題三:更多註解
這個zip在不同版本的不同反應了python的一個演變:大部分返回list的函數不在返回list,而是返回一個支持遍歷的對象,比如map、fiter之類的,基本的例子如下:
$ python3
>>> a = map(abs, [1, 2, -3])
>>> a
<map object at 0x100707ed0>
>>> list(a) # 如果不習慣,可以自己手動轉化為list,也是寫兼容代碼需要注意的地方
[1, 2, 3]

$ python2
>>> a = map(abs, [1, 2, -3])
>>> a
[1, 2, 3]

『柒』 Python版本3.3有zip這個用法嗎

Python3中,zip()函數實現為迭代器,可以隨著迭代返回一系列值

內置函數next()可以進行迭代,對next()傳遞可迭代對象,將會進行一次迭代,返回一個值

此外,python中還有許多迭代環境,會自動進行迭代,比如典型的for i in obj循環

如果需要一次性獲得zip()的所有值,即類似於Python2中返回一個列表,需要:

list(zip(a,b))

『捌』 請簡述zip函數的功能及Python.3.x中使用zip函數生成列表的方法。

一、zip函數的功能如下:
將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。當各個迭代器中元素的個數不一致時,則返回列表中長度最短的情況,利用 *號操作符,可以將元組解壓為列表。
二、Python.3.x中使用zip函數生成列表的方法如下:
1、作出說明,使用zip函數將可迭代的對象作為參數。
2、將對象中對應的元素打包成一個個元組。
3、用zip函數平行地遍歷多個迭代器,如果可迭代對象的長度不相同將按短的序列為准。
4、遍歷過程中產生元組,Python.3.x會把元組生成好,然後生成列表。

『玖』 python中zip函數有哪些高級用法

zip() 功能是從參數的多個迭代器中選取元素組合成一個新的迭代器。顧名思義,它就是一個將對象進行打包和解包的函數。

它可以傳入的參數包括;元組、列表、字典等迭代器

它返回一個zip對象,其內部元素為元組,一組一組的,可以轉化為列表或元組,這里要強調一下,Python2和Python3中返回的zip對象有所不同。

Python3中zip()函數再不再返回list對象,但是可以通過list強行轉換。(類似的函數變化還有dictionary關聯的keys()、values()、items(),map(),filter())。

打包zip(iterables)

上面的代碼使用的環境是Python3.6,其中list (z)操作就是強制轉換。注意一個問題,a和b這兩個列表是不同長短的,這時候zip函數就會匹配完最短的那個便結束。

當zip函數的參數只有一個時,它將從iterable中依次取一個元素,組成一個元組。

解包zip(*iterables)

解包,zip 相反,可理解為解壓,返回多維矩陣形式,有幾個組元素就返回幾維的。

比如,下面我是用三個列表組合起來的迭代式,那麼解壓後就返回三維的矩陣

zip高級用法

講完了基本的再來說一下該函數的高級用法。高級用法離不開一個詞:Pythonic,就是將代碼寫的更優雅美觀,看起來有逼格!

1. 列表推導

例如:

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

我們要同時遍歷a、b,且要對它們進行操作,那就要放在同一個for循環內,zip函數正好合適

注意:如果是Python2環境中,要使用izip才能提高效率。

當然,如果你需要對下標進行操作,那麼還需要加上enumerate函數

2. 使用zip創建鍵值對,zip方法返回的是一個元組,用它來創建鍵值對,簡單明了。

『拾』 python中的zipfile

python中的zipfile模塊是用於解壓/壓縮zip文件的,壓縮a.txt為a.zip,從b.zip解壓出b.txt(假設它們都放在d:\,且b.zip中只有b.txt)示範代碼如下5行:
from os import chdir;
from zipfile import ZipFile;
chdir("d:/");
with Zipfile("d:/b.zip","r") as zipf:zipf.extractall();
with Zipfile("d:/a.zip","w") as zipf:zipf.write("d:/a.txt");

閱讀全文

與zip在python中意思相關的資料

熱點內容
java棧的元素 瀏覽:737
程序員與籃球事件 瀏覽:673
app反編譯不完整 瀏覽:788
電腦上的文件夾怎麼調整 瀏覽:5
伺服器無響應是什麼原因呀 瀏覽:984
wd文檔里的app怎麼製作 瀏覽:513
電腦里的文件夾沒有了一般能恢復嗎 瀏覽:418
哪裡有配加密鑰匙的 瀏覽:210
伺服器開不了機怎麼把數據弄出來 瀏覽:958
gif動態圖片怎麼壓縮 瀏覽:521
黑猴子棒球壓縮文件解壓密碼 瀏覽:631
如何讓app適應不同的手機屏幕大小 瀏覽:10
蘋果手機如何給安卓手機分享軟體 瀏覽:761
蘋果電腦怎麼運行騰訊雲伺服器 瀏覽:59
明日之後沙石堡命令助手 瀏覽:261
蛋糕店用什麼樣的app 瀏覽:877
長安銀行信用卡app怎麼取現 瀏覽:635
dos命令cmd命令的 瀏覽:226
阿里雲存檔視頻文件的伺服器 瀏覽:194
ftp修改文件許可權命令 瀏覽:491