小白问个问题

2018-12-10 18:11:03 +08:00
 css3
a = [1,2,4]
b = [1,2,3,4,5,6]

想输出一个结果,c 是 a 和 b 的并集,但每个值要标明是否是交集,如

c = {"1" :True, "2" :True, "3" :False, "4": True, "5": False, "6":False}

应该怎么处理?😭

1797 次点击
所在节点    Python
9 条回复
kkkkkrua
2018-12-10 18:18:48 +08:00
leetcode,交集
qwertyzzz
2018-12-10 18:24:43 +08:00
都是有序的话 我记得有个是 2 个从头互相比较的 好像要额外空间存储
AlisaDestiny
2018-12-10 18:41:53 +08:00
```python
a = [1,2,4]
b = [1,2,3,4,5,6]

u = set(a+b)
r = {}
for x in u:
r[str(x)] = (x in a and x in b)
print(r)
```
css3
2018-12-10 19:05:16 +08:00
@kkkkkrua @qwertyzzz @AlisaDestiny

感谢各位☺
nichijou
2018-12-10 20:58:15 +08:00
第一个依次存入哈希字典, key 是 number, value 是 false

然后遍历第二个,有的改 true, 没的存 key: false
smdbh
2018-12-10 21:05:00 +08:00
L3 +1
zxcvsh
2018-12-10 22:03:17 +08:00
推荐 3 楼,5 楼也可行,但是 3 楼相对有优化
MrGba2z
2018-12-10 23:19:25 +08:00
>>> s1 = collections.Counter(a+b)
>>> s2 = collections.Counter(set(a+b))
>>> s1.subtract(s2)
>>> s1
Counter({1: 1, 2: 1, 4: 1, 3: 0, 5: 0, 6: 0})
css3
2018-12-11 10:35:41 +08:00
@nichijou @smdbh @zxcvsh @MrGba2z
多谢😀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/516228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX