DEV Community

Python challenge: can you solve this in a readable and efficient way?

Kevin Naidoo on February 13, 2024

I have a list of search terms and their associated "metadata": search_tags = [ "iPhone 14", "metadata", "Samsung Galaxy S3", "me...
Collapse
 
fabrixi profile image
Fabrizio
search_tags_dict = dict(zip(search_tags[::2], search_tags[1::2]))
Enter fullscreen mode Exit fullscreen mode
Collapse
 
kwnaidoo profile image
Kevin Naidoo

Nice! Very compact.

Collapse
 
robertgroves profile image
Robert Groves
search_dict = {}
for i in range(0, len(search_tags), 2):
    key = search_tags[i]
    search_dict[key] = search_tags[i + 1]

# ...or the same using a list comprehension...

search_dict = {
    search_tags[i]: search_tags[i + 1]
    for i in range(0, len(search_tags), 2)
}
Enter fullscreen mode Exit fullscreen mode
Collapse
 
kwnaidoo profile image
Kevin Naidoo

Nice! This is indeed correct.

Collapse
 
ryanlwh profile image
Ryan Lee • Edited
from itertools import pairwise
search_tags_dict = dict(pairwise(search_tags))
Enter fullscreen mode Exit fullscreen mode
Collapse
 
ptmcg profile image
Paul McGuire
search_iter = iter(search_tags)
search_tags_dict = dict(zip(search_iter, search_iter))
Enter fullscreen mode Exit fullscreen mode
Collapse
 
kwnaidoo profile image
Kevin Naidoo

Great! Another good way of doing it.

Collapse
 
fialex137 profile image
fialex137 • Edited

This is my solution!!!

Image description