So I’m trying to make a program that tells the user how many numbers both inputted numbers have in common
FOR EXAMPLE: if inputted n1 = 765 and n2 = 572 then the program returns 2 because both numbers have 7 and 5 in them.
I made this but it isn’t working:
p = [] i = [] counter = [0] * 10 answer = 0 def conv(a): p = [list(map(int, a))] return p def fed(a): i = [list(map(int, a))] return i while True: n = str(input("Enter the first number :")) conv(n) v = str(input("Enter the second number: " )) fed(v) counter = [0] * 10 answer = 0 for x in p: counter[x] += 1 for x in i: if counter[x] > 0: counter[x] -= 1 answer += 1 print(answer)```
Advertisement
Answer
Use list comprehension and sets instead, like so:
while True: nums = [] nums.append(input('Enter first number: ')) nums.append(input('Enter second number: ')) digits = [set(x) for x in nums] num_comm = len(digits[0] & digits[1]) print(num_comm)