首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:将用户输入转换为列表,然后获取公共元素

Python:将用户输入转换为列表,然后获取公共元素
EN

Stack Overflow用户
提问于 2022-08-06 22:14:44
回答 5查看 80关注 0票数 0

如何将用户输入转换为列表和两个列表中的查找公共元素?目前我正在做这个:

代码语言:javascript
运行
复制
lst = []
lst2 = []
while True:
    seq1 = input('first list: ')
    break
while True:
    seq2 = input('second list: ')
    break

print(list(set(lst).intersection(lst2)))

输出返回一个空列表。

EN

回答 5

Stack Overflow用户

发布于 2022-08-06 22:29:29

这是对片场的挑战,不是吗?

我认为这里的问题是,您的列表是空的,因为您没有将任何数据读入其中(您只是将数据读入seq1和seq2)。

我做这件事的方式(没有循环等等)是:

以特定格式将数据读入字符串seq1和seq2。

代码语言:javascript
运行
复制
seq1 = input('first list: ')
seq2 = input('second list: ')

将数据分割成一个列表。我在代码段中按空格分隔,但您可以提供任何字符作为参数(因此,如果需要,也可以使用逗号分隔的元素)。

代码语言:javascript
运行
复制
lst1 = seq1.split() # I renamed lst to be consistent
lst2 = seq2.split() # default: split along ' ' (space)

从列表构造集合。

代码语言:javascript
运行
复制
set1 = set(lst1)
set2 = set(lst2)

走十字路口。

代码语言:javascript
运行
复制
print(set1.intersection(set2))
票数 1
EN

Stack Overflow用户

发布于 2022-08-07 06:44:41

您可以用空格分隔用户输入列表,然后使用.split()将其转换为列表。然后使用.intersection()对相似元素进行比较

代码语言:javascript
运行
复制
lst1 = input('first list: ').split()
print(lst1)
lst2 = input('second list: ').split()
print(lst2)
print('intersection', list(set(lst1).intersection(lst2)))

first list:  1 2 3 4 5 6
['1', '2', '3', '4', '5', '6']
second list:  5 6 7
['5', '6', '7']
intersection ['5', '6']
票数 1
EN

Stack Overflow用户

发布于 2022-08-06 22:21:09

您可能希望对输入进行split,以便将它们从单个字符串转换为字符串列表,然后可以将这些字符串转换为集合,以便获得交集。

代码语言:javascript
运行
复制
>>> print(set(input('first list: ').split()) & set(input('second list: ').split()))
first list: foo bar baz
second list: bar ola baz qux
{'bar', 'baz'}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73263612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档