Get common characters from strings

boolean, python, string

Solution

Use `set`:

s = set("123 ABC")
t = set("135 AZ")
intersect = s & t # or s.intersection(t)
exclusion = s ^ t # or s.symmetric_difference(t)
a_minus_b = s - t # or s.difference(t)
b_minus_a = t - s # or t.difference(s)

Problem

I'm looking for the way of comparing two strings and being able to get back, as separate strings: - All the common characters, - The uncommon characters, (all characters but without the common ones) - Characters that are unique to one string. Example: ``` A = "123 ABC" B = "135 AZ" thingamajigger(A, B) # would give all these: intersect = "13 A" # (includes space) exclusion = "2BCZ5" a_minus_b = "2BC" b_minus_a = "5Z" ``` `a_minus_b` is quite simple... but if there's one of those fancy one-liner ways to pull it off, then I'm open. ``` for i in B: A = A.replace(i, "") ``` It's a bit like boolean operations on strings.

Original source