我有两个嵌套列表,
l1 = [[1],[2],[1,2],[3],[2,2]]
l2 = [[1],[3],[3,4],[1],[1,2],[3],[4],[1],[2],[1,2],[3],[2,2]]
我想弄清楚l1
中每个元素在l2
中找出的次数,并将值保存到字典中,其中字典的键是每个元素和值的出现次数将是元素本身。我做了如下:
dic = {}
for item in l1:
count = 0
for items in l2:
if item == items:
count += 1
dic[count] = item
return dic
答案是dic = {3:[1], 1:[2], 2:[1,2], 3:[3], 1:[2,2]}
但我得到dic = {1:[2], 2:[1,2], 3:[3]}
。我没有得到确切的答案。你能帮我解决一下这个问题吗?
答案 0 :(得分:1)
问题是l1
中的多个项目具有相同的计数。
[2,2]
和[2]
都出现一次,所以当它们被分配到字典中时会覆盖另一个。
反转这一行:
dic[count] = item
到此:
dic[item] = count
请记住,您不能在字典中复制密钥,因此无法获得所请求的输出!
答案 1 :(得分:0)
l1 = [[1],[2],[1,2],[3],[2,2]]
l2 = [[1],[3],[3,4],[1],[1,2],[3],[4],[1],[2],[1,2],[3],[2,2]]
dic = {}
for i in l1:
item = tuple(i)
count = 0
for j in l2:
items = tuple(j)
if item == items:
count += 1
dic[item] = count
print dic
输出:
{(1, 2): 2, (2,): 1, (3,): 3, (1,): 3, (2, 2): 1}
dict键是列表,值是计数