如何解决不可损坏的类型:“列表”错误

2024-09-28 17:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

在fowling代码中,用户输入两个列表,第一个输入是一个整数(N),显示第一个列表中的元素数(l1),第三个输入(M)是一个整数,显示第二个列表中的元素数(l2)

输入如下:

4
apple32
banana2
tomato3
potato
3
carrot
apple32
banana2

由于apple32banana2都在两个列表中,因此,输出应该是2,这意味着两个列表中都有两个重复的元素。我的代码出现错误:不可修复类型:“列表”

N = int(input() )
l1 = [[x for x in input().split()] for _ in range(N)]
M = int(input() )
l2 = [[x for x in input().split()] for _ in range(M)]
print(len(set(l1).intersection(l2)))

Tags: 代码in元素l1列表forinputrange
1条回答
网友
1楼 · 发布于 2024-09-28 17:23:08

看看你的理解嵌套

l1 = [[x for x in input().split()] for _ in range(N)]

其结果是一个列表列表,每个列表包含一个字符串,例如

[['apple'], ['banana'], ['carrot']]

列表不是可散列的项;你不能用它做一套

理解力下降:

l1 = [x for x in input().split() for _ in range(N)]

。。。然后应用juanpa的简化。这将给您留下一个字符串列表。您可以直接将intersection应用于这些结构

相关问题 更多 >