如何将用户输入转为列表并查找两列表共同元素?代码返回空列表
问题原因和解决办法
你的代码输出空列表是因为lst和lst2自始至终都是空的——你只把用户输入存在了seq1、seq2里,但根本没把这些内容转成列表存入lst和lst2,而且那两个毫无意义的while循环也可以直接删掉。
修正步骤:
- 获取用户输入的字符串后,用
split()方法把它拆分成元素列表(默认按空格分隔,要是用户习惯用逗号分隔就改成split(',')) - 把拆分后的列表直接赋值给lst和lst2
- 再计算两个列表的交集
修正后的代码:
# 获取第一个列表的输入并转成列表 lst = input('first list: ').split() # 获取第二个列表的输入并转成列表 lst2 = input('second list: ').split() # 计算并输出共同元素 print(list(set(lst).intersection(lst2)))
额外说明:
如果你的需求是处理数字类型的元素,记得把每个元素转成对应的类型,避免字符串数字和数值型数字不匹配的问题:
lst = list(map(int, input('first list: ').split())) lst2 = list(map(int, input('second list: ').split()))
内容的提问来源于stack exchange,提问作者Jot
相关产品推荐
相关产品推荐

