當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python zip()用法及代碼示例


zip()的目的是映射多個容器的相似索引,以便可以將它們用作單個實體使用。

用法:
zip(*iterators)
參數:
Python iterables or containers ( list, string etc )
返回值:
Returns a single iterator object, having mapped values from all the
containers.
# Python code to demonstrate the working of  
# zip() 
  
# initializing lists 
name = [ "Manjeet", "Nikhil", "Shambhavi", "Astha" ] 
roll_no = [ 4, 1, 3, 2 ] 
marks = [ 40, 50, 60, 70 ] 
  
# using zip() to map values 
mapped = zip(name, roll_no, marks) 
  
# converting values to print as set 
mapped = set(mapped) 
  
# printing resultant values  
print ("The zipped result is:",end="") 
print (mapped)

輸出:


The zipped result is:{('Shambhavi', 3, 60), ('Astha', 2, 70),
('Manjeet', 4, 40), ('Nikhil', 1, 50)}

如何解壓縮?
解壓縮意味著將壓縮後的值轉換回原樣。這是在“*”運算符的幫助下完成的。

# Python code to demonstrate the working of  
# unzip 
  
# initializing lists 
  
name = [ "Manjeet", "Nikhil", "Shambhavi", "Astha" ] 
roll_no = [ 4, 1, 3, 2 ] 
marks = [ 40, 50, 60, 70 ] 
  
# using zip() to map values 
mapped = zip(name, roll_no, marks) 
  
# converting values to print as list 
mapped = list(mapped) 
  
# printing resultant values  
print ("The zipped result is:",end="") 
print (mapped) 
  
print("\n") 
  
# unzipping values 
namz, roll_noz, marksz = zip(*mapped) 
  
print ("The unzipped result:\n",end="") 
  
# printing initial lists 
print ("The name list is:",end="") 
print (namz) 
  
print ("The roll_no list is:",end="") 
print (roll_noz) 
  
print ("The marks list is:",end="") 
print (marksz)

輸出:

The zipped result is:[('Manjeet', 4, 40), ('Nikhil', 1, 50), 
('Shambhavi', 3, 60), ('Astha', 2, 70)]


The unzipped result:
The name list is:('Manjeet', 'Nikhil', 'Shambhavi', 'Astha')
The roll_no list is:(4, 1, 3, 2)
The marks list is:(40, 50, 60, 70)

實際應用程序:可以說有許多可能的應用程序是使用zip壓縮的,無論是學生數據庫還是計分卡,還是需要組映射的任何其他實用程序。下麵展示了一個記分卡的小例子。

# Python code to demonstrate the application of  
# zip() 
  
# initializing list of players. 
players = [ "Sachin", "Sehwag", "Gambhir", "Dravid", "Raina" ] 
  
# initializing their scores 
scores = [100, 15, 17, 28, 43 ] 
  
# printing players and scores. 
for pl, sc in zip(players, scores):
    print ("Player:  %s     Score:%d" %(pl, sc))

輸出:

Player: Sachin     Score:100
Player: Sehwag     Score:15
Player: Gambhir     Score:17
Player: Dravid     Score:28
Player: Raina     Score:43



相關用法


注:本文由純淨天空篩選整理自manjeet_04大神的英文原創作品 zip() in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。