python - 查找出现在两个不同列表中的唯一数字
问题描述
我有这个代码:
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。我的用户输入代码中发生了什么?
解决方案
因为在使用时输入被转换为字符串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']
推荐阅读
- hibernate - 会话仍然打开时没有会话错误
- fortran - Fortran 循环不工作
- c# - 从 MemoryStream 反序列化对象时出错
- css - 背景图片没有出现在我的网站上
- kotlin - 如何将具有可变数量参数的函数分配给单个变量?
- java - 通过 Java 和 Selenium 启动 Internet Explorer 时出现“OsProcess checkForError : CreateProcess error=193, %1 不是有效的 Win32 应用程序”
- javascript - Javascript隐藏和删除多个div出错
- python - 在 python 中使用 BigQuery 接收器流式传输管道
- python - 基于图像掩码阈值的骰子分数混淆
- python - peewee.DataError: string or blob too big, 如何在 peewee 中增加 `DSQLITE_MAX_VARIABLE_NUMBER`?