python - Python:更好地使用字典或哈希图来处理数组的常见元素
问题描述
我必须从 2 个无序列表中找到常用数字列表。我有两种方法。有人可以解释哪个更好,为什么
def common_by_dictionary(a1,a2):
d1 = {}
for i in a1:
if not(i in d1):
d1[i]=1
for i in a2:
if (i in d1):
d1[i]=0
c = []
for i in d1:
if(d1[i]==0):
c.append(i)
print c
def common_by_hashmap(a1,a2):
h = [0]*1000
for i in a1:
if not (i in h):
h[i]=1
c = []
for i in a2:
if(h[i]==1):
c.append(i)
print c
common_by_dictionary([1,3,4,6,7,9,12,5],[1,2,4,5,9,10,3])
common_by_hashmap([1,3,4,6,7,9,12,5],[1,2,4,5,9,10,3])
解决方案
您应该使用set
:
def common(first, second):
return set(first) & set(second)
推荐阅读
- node.js - 在 node/express 中启用了 CORS,但得到“对预检请求的响应未通过访问控制检查”
- r - 从 R 中的传单或 ggmap 创建地理参考 png 文件
- html - 单击保存按钮时,单选按钮模型返回未定义的值
- node.js - nw.js,如何检测代码更改并刷新页面
- umbraco - 模板未保存 404 未找到 umbraco/RestServices/SaveFile/SaveTemplate UMBRACO
- javascript - 动画迭代的延迟
- elasticsearch - 弹性搜索查询其中值存在于 2 个字段值之间
- ios - ios如何使用地理围栏监视多边形或矩形区域的进入或退出
- ruby-on-rails - Ruby - 需要向按钮添加功能的能力
- node.js - 导入函数的参数 - 所以回调 - req.body.value 未定义