DEV Community

Discussion on: Python | Hamming Problem

Collapse
 
seanolad profile image
Sean • Edited

I'm no noob, but here it is(less lines and more pythonic):

def distance(strand_a, strand_b):
    if len(strand_a) != len(strand_b): raise ValueError("Length of two sequences most be the same")
    zip_a_b = zip(strand_a, strand_b)
    count = len([x for x, y in zip_a_b if x != y])
    return count

Your's was okay though.

Collapse
 
banji220 profile image
Banji

Hey Sean, tnx for sharing your better way to improve this solution.
Happy coding with LoVe

Collapse
 
renegadecoder94 profile image
Jeremy Grifski

Both are great! But, it feels weird to create and throw away a list just for its length. I thought this generator expression solution was clever:

count = sum(1 for x, y in zip(strand_a, strand_b) if x != y)

Source: Stack Overflow

Collapse
 
seanolad profile image
Sean

Way smarter, totally tosses the array. Absolutely, and perfecly, pythonic.

Collapse
 
banji220 profile image
Banji

Hey Jeremy, thank you for sharing a better and clever solution in this post.
thank you for reading this post and leaving a comment to improve this solution.
Happy Coding with LoVe

Collapse
 
banji220 profile image
Banji

I'm gonna edit my post and add your great solution in my post.
Thank you :)
Keep Moving Forward

Code with 💛

🅑🅐🅝🅙🅘