gpt4 book ai didi

Python比较两个不均匀数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:43 25 4
gpt4 key购买 nike

我正在尝试生成两个数组,ab ,每个包含 ~1000 个随机数。随机数在 1 到 5 之间。

然后我想比较 a 中的每个元素与 b 对应的元素这样如果 a[i] > b[i]一个变量,counter , 将增加 1。这被认为是“成功”。否则,如果 a[i] <= b[i]没有任何反应(即 counter += 0 )。这被认为是“失败”。

然而,ab可以是可变长度使得 len(a) == len(b)len(a) != len(b)是可能性。

在后者的情况下,如果len(a) > len(b)我想要 a 的所有“额外”元素自动算作“成功”。如果len(b) > len(a)事情应该正常进行(即 b 的“额外”元素被忽略)。

例如:

如果a = [1, 3, 4, 2]b = [2, 4, 0]

然后counter = 2因为( 1 < 23 < 44 > 02 是额外的并且自动成功`)

我该怎么做呢?

这是一些快速代码,它返回预期的 list index out of range...错误:

import random

a = []
b = []
counter = 0

for i in range(1000):
a += [random.randint(1, 5)]
for i in range(900):
b += [random.randint(1, 5)]
for i in range(len(a)):
if a[i] > b[i]:
counter += 1

print counter

最佳答案

只需检查一下您是否在循环中跑完了 b 的结尾:

for i in range(len(a)):
if (i >= len(b)) or a[i] > b[i]:
counter += 1

你也可以更聪明一点,做类似的事情:

for i in range(min(len(a), len(b)):
if a[i] > b[i]:
counter += 1
if len(a) > len(b):
counter += (len(a) - len(b))

(在这里使用 xrange 也是一个小改进。)

关于Python比较两个不均匀数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30442623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com