स्रोत: मेरा ब्लॉग पोस्ट (बेहतर प्रारूपण)
उदाहरण
numbers = [1,2,3]
letters = 'abcd'
zip(numbers, letters)
# [(1, 'a'), (2, 'b'), (3, 'c')]
इनपुट
शून्य या अधिक पुनरावृत्तियाँ [1] (पूर्व सूची, स्ट्रिंग, टपल, शब्दकोश)
आउटपुट (सूची)
1 टपल = (संख्याओं का तत्व १, अक्षरों का तत्व १)
2 टुपल = (ई २ अंक, ई २ अक्षर)
...
n-th टुपल = (e_n नंबर, e_n अक्षर)
- N ट्यूपल्स की सूची: n सबसे छोटे तर्क की लंबाई है (इनपुट)
- len (संख्याएं) == 3 <len (अक्षर) == 4 → लघु = 3 → 3 tuples लौटें
- लंबाई प्रत्येक tuple = # args की (tuple प्रत्येक arg से एक तत्व लेता है)
- args = (संख्या, अक्षर); len (args) == 2 → 2 तत्वों के साथ टपल
iवें tuple = (element_i arg1, element_i arg2…, element_i arg n)
एज केस
1) खाली स्ट्रिंग: लेन (str) = 0 = कोई ट्यूपल नहीं
2) सिंगल स्ट्रिंग: लेन (str) == 2 ट्यून विथ लेन (आर्ग्स) == 1 एलिमेंट (एस)
zip()
# []
zip('')
# []
zip('hi')
# [('h',), ('i',)]
लड़ाई में जिप!
1. दो सूचियों में से एक शब्दकोश [2] बनाएँ
keys = ["drink","band","food"]
values = ["La Croix", "Daft Punk", "Sushi"]
my_favorite = dict( zip(keys, values) )
my_favorite["drink"]
# 'La Croix'
my_faves = dict()
for i in range(len(keys)):
my_faves[keys[i]] = values[i]
zip एक सुरुचिपूर्ण, स्पष्ट और संक्षिप्त समाधान है
2. एक तालिका में कॉलम प्रिंट करें
"*" [3] को "अनपैकिंग" कहा जाता है: f(*[arg1,arg2,arg3]) == f(arg1, arg2, arg3)
student_grades = [
[ 'Morty' , 1 , "B" ],
[ 'Rick' , 4 , "A" ],
[ 'Jerry' , 3 , "M" ],
[ 'Kramer' , 0 , "F" ],
]
row_1 = student_grades[0]
print row_1
# ['Morty', 1, 'B']
columns = zip(*student_grades)
names = columns[0]
print names
# ('Morty', 'Rick', 'Jerry', 'Kramer')
अतिरिक्त क्रेडिट: Unzipping
zip(*args) इसे "अनजिपिंग" कहा जाता है क्योंकि इसका उलटा प्रभाव होता है zip
numbers = (1,2,3)
letters = ('a','b','c')
zipped = zip(numbers, letters)
print zipped
# [(1, 'a'), (2, 'b'), (3, 'c')]
unzipped = zip(*zipped)
print unzipped
# [(1, 2, 3), ('a', 'b', 'c')]
unzipped: tuple_1 = प्रत्येक zipped tuple का e1। tuple_2 = प्रत्येक का e2zipped
फुटनोट
- एक वस्तु जो एक बार में अपने सदस्यों को वापस करने में सक्षम है (उदा। सूची [1,2,3], स्ट्रिंग 'I like codin', tuple (1,2,3), शब्दकोश {'a': 1, 'b' : 2})
- {की १: मान १, की २: मान २ ...}
- "अनपैकिंग" (*)
* कोड:
# foo - function, returns sum of two arguments
def foo(x,y):
return x + y
print foo(3,4)
# 7
numbers = [1,2]
print foo(numbers)
# TypeError: foo() takes exactly 2 arguments (1 given)
print foo(*numbers)
# 3
*लिया numbers(1 arg) और "unpacked" अपने '2 तत्वों को 2 args में
zipकरने की उम्मीद कर रहे हैं? आपके पास तीन सूचियाँ क्यों होनी चाहिए - वे कैसी दिखेंगी?