58 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
categories:
 | 
						|
  - Programming Languages
 | 
						|
tags: [python, data-structures]
 | 
						|
---
 | 
						|
 | 
						|
# `zip`
 | 
						|
 | 
						|
The `zip` function returns a zip object when you pass in two iterator data types
 | 
						|
(typically two lists). This is an iterator of tuples where the first item in
 | 
						|
each passed iterator is paired together, and then the second item in each passed
 | 
						|
iterator are paired together, and so on.
 | 
						|
 | 
						|
## Example
 | 
						|
 | 
						|
```py
 | 
						|
a = ("John", "Charles", "Mike")
 | 
						|
b = ("Jenny", "Christy", "Monica", "Vicky")
 | 
						|
 | 
						|
x = zip(a,b)
 | 
						|
 | 
						|
print(x)
 | 
						|
# <zip object at 0x1514af34c340>
 | 
						|
 | 
						|
# To display the resulting tuple in a readable format:
 | 
						|
 | 
						|
print(tuple(x))
 | 
						|
 | 
						|
(('John', 'Jenny'), ('Charles', 'Christy'), ('Mike', 'Monica'))
 | 
						|
```
 | 
						|
 | 
						|
As indicated above, if the input iterators are of equal lengths, Python will
 | 
						|
ignore the value in iterator B that doesn't have an equivalent index in iterator
 | 
						|
A.
 | 
						|
 | 
						|
## Real-life example
 | 
						|
 | 
						|
```py
 | 
						|
prompts = [
 | 
						|
    "Enter title",
 | 
						|
    "Enter author",
 | 
						|
    "Enter publication date",
 | 
						|
    "Enter year you read the book"
 | 
						|
]
 | 
						|
 | 
						|
keys = ["Title", "Author", "Publication_date", "Date_read"]
 | 
						|
 | 
						|
book = {}
 | 
						|
 | 
						|
for key, prompt in zip(keys,prompts):
 | 
						|
    book[key] = input(prompt + ": ")
 | 
						|
 | 
						|
```
 | 
						|
 | 
						|
Here I take the `prompts` and `keys` lists, collate them via `zip` and then loop
 | 
						|
through them to populate the `book` dictionary, which contains properties
 | 
						|
sourced from the `keys` list and values from the user's answers to the
 | 
						|
`prompts`.
 |