首页 > 解决方案 > 查找出现在两个不同列表中的唯一数字

问题描述

我有这个代码:

list1 = input()
list2 = input()
unique = list(set(list1).intersection(list2))
print(len(unique))

我想找到两个列表中出现的唯一数字。但是,当我输入列表 [1,2,3,4,5,6] 和 [6,5,4,3,2,1] 时,它返回 7,而不是 6。

当我将代码编辑为:

list1 = [1,2,3,4,5,6]
list2 = [6,5,4,3,2,1]
unique = list(set(list1).intersection(list2))
print(len(unique))

它正确输出6。我的用户输入代码中发生了什么?

标签: pythonstringset

解决方案


因为在使用时输入被转换为字符串input,并且通过构造 aset你得到:

list1 = '1,2,3,4,5,6'
print(set(list1))
# {',', '1', '2', '3', '4', '5', '6'}
list2 = '6,5,4,3,2,1'
set(list2)
# {',', '1', '2', '3', '4', '5', '6'}

包含逗号,结果为:

list(set(list1).intersection(list2))
# [',', '1', '6', '5', '3', '4', '2']

推荐阅读