如何将用户输入转换为列表和两个列表中的查找公共元素?目前我正在做这个:
lst = []
lst2 = []
while True:
seq1 = input('first list: ')
break
while True:
seq2 = input('second list: ')
break
print(list(set(lst).intersection(lst2)))
输出返回一个空列表。
发布于 2022-08-06 22:29:29
这是对片场的挑战,不是吗?
我认为这里的问题是,您的列表是空的,因为您没有将任何数据读入其中(您只是将数据读入seq1和seq2)。
我做这件事的方式(没有循环等等)是:
以特定格式将数据读入字符串seq1和seq2。
seq1 = input('first list: ')
seq2 = input('second list: ')
将数据分割成一个列表。我在代码段中按空格分隔,但您可以提供任何字符作为参数(因此,如果需要,也可以使用逗号分隔的元素)。
lst1 = seq1.split() # I renamed lst to be consistent
lst2 = seq2.split() # default: split along ' ' (space)
从列表构造集合。
set1 = set(lst1)
set2 = set(lst2)
走十字路口。
print(set1.intersection(set2))
发布于 2022-08-07 06:44:41
您可以用空格分隔用户输入列表,然后使用.split()
将其转换为列表。然后使用.intersection()
对相似元素进行比较
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']
发布于 2022-08-06 22:21:09
您可能希望对输入进行split
,以便将它们从单个字符串转换为字符串列表,然后可以将这些字符串转换为集合,以便获得交集。
>>> print(set(input('first list: ').split()) & set(input('second list: ').split()))
first list: foo bar baz
second list: bar ola baz qux
{'bar', 'baz'}
https://stackoverflow.com/questions/73263612
复制相似问题