DEV Community

Discussion on: The art and difficulty of naming in programming

Collapse
 
fayomihorace profile image
Horace FAYOMI

I drop the solution here anyways.

def print_items_counts(array):
    item_map_count = {}
    for item in array:
        if item_map_count.get(item):
            item_map_count[item] += 1
        else:
            item_map_count[item] = 1

    for item, count in item_map_count.items():
        print(f"{item}: {count}")
Enter fullscreen mode Exit fullscreen mode
Collapse
 
geraldew profile image
geraldew

If we're talking about clarity then it is misleading to use

 if item_map_count.get(item):
Enter fullscreen mode Exit fullscreen mode

when there is no apparent use for that value. Instead it is clearer to use

 if item in item_map_count :
Enter fullscreen mode Exit fullscreen mode

So it's not just choice of variable names that affect clarity.

Collapse
 
fayomihorace profile image
Horace FAYOMI

You're right geraldew, thanks.

Collapse
 
yannickkiki profile image
yannickkiki • Edited

Nice article, waiting for the part 2!

Just for the record, we could also write this part

if item_map_count.get(item):
    item_map_count[item] += 1
else:
    item_map_count[item] = 1
Enter fullscreen mode Exit fullscreen mode

as this

item_map_count[item] = 1 + item_map_count.get(item, 0)
Enter fullscreen mode Exit fullscreen mode
Collapse
 
fayomihorace profile image
Horace FAYOMI

Beautiful indeed, I like shorthands. Thanks.