python两数组内容比较_比较python中两个数组的值

(长文章,但请通读,解决方案在最后)。

删除找到的值或将其注册到另一个dict中

更好的方法是计算每个数组中的幽灵数量,并测试有多少是常见的。

对于第二个案子,你会对于a:

3次出现1次

2次出现1次

5次出现1次

4出现1次

对于b:

2出现2次

4出现1次

将这些值保存在词典中:a_app = {3:1, 2:1, 5:1, 4:1}

b_app = {2:2, 4:1}

现在,很简单:for i in b:

if a_app.has_key(i) and a_app[i] > 0:

a_app[i] -= 1

在其他情况下,b_app字典将被使用。

以下是我编写的测试脚本(测试此处发布的所有测试用例):def f(a, b):

a_app = {}

for i in a:

if not a_app.has_key(i):

a_app[i] = 0

a_app[i] += 1

print a_app

for i in b:

print i, '=>',

if a_app.has_key(i) and a_app[i] > 0:

a_app[i] -= 1

print i, ' is in a',

print '.'

f([1,1,2],[1,1])

f([3,2,5,4],[2,4,2])

f([3,2,2,4],[2,4,2])

f([3,2,5,4],[2,3,2])

这里是输出:$ python 1.py

{1: 2, 2: 1}

1 => 1 is in a .

1 => 1 is in a .

{2: 1, 3: 1, 4: 1, 5: 1}

2 => 2 is in a .

4 => 4 is in a .

2 => .

{2: 2, 3: 1, 4: 1}

2 => 2 is in a .

4 => 4 is in a .

2 => 2 is in a .

{2: 1, 3: 1, 4: 1, 5: 1}

2 => 2 is in a .

3 => 3 is in a .

2 => .

一切都很完美,没有秩序丢失:)

编辑:更新@Avaris的建议,这个脚本看起来像:import collections

def f(a, b):

a_app = collections.Counter(a)

for i in b:

print i, '=>',

if i in a_app and a_app[i] > 0:

a_app[i] -= 1

print i, ' is in a',

print '.'

print ''

f([1,1,2],[1,1])

f([3,2,5,4],[2,4,2])

f([3,2,2,4],[2,4,2])

f([3,2,5,4],[2,3,2])

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值