【发布时间】:2014-10-19 00:35:08
【问题描述】:
我已经彻底查看,但没有找到以下问题的明确(或迂回)答案:如何创建一个 for 循环,让我找到最大的对,其中 x 和 y 在 (x,y)是否大于或等于列表中的所有其他 x 和 y?
所以,假设我有一个包含 20 个伪随机整数有序对的列表,我想使用 for 循环找出哪个有序对最大。
我目前拥有的代码是:
np.random.seed(1234)
a = np.random.randint(0, 11,(20,2))
alst = list(allocationsset)
print alst
其中 np 是 numpy 的导入形式并打印, [[1,0],[8,9],[2,1],[3,2],[10,10] 等...]
然后,我尝试使用以下函数创建 for 循环:
def dominantx (pairs):
def maxx (pairs):
maxlist = []
for [a,b] in pairs:
if a >= b:
maxlist.append([a,b])
return maxlist
dom = maxx(pairs)
domlist = []
for [a,b] in dom:
for [c,d] in dom:
if a > c:
domlist.append([a,b])
if a == c:
if b > d:
domlist.append([a,b])
if b == d:
domlist.append([a,b])
domlist.append([c,d])
else:
domlist.append([c,d])
else:
domlist.append([c,d])
return domlist
dominantx(alst)
我相信我遇到的部分问题是用新的最大有序对替换“domlist”中的内容并将其作为答案返回,即我不想将“domlist”附加到新的最大有序对直到我从 domlist 中删除旧的最大有序对。
我的第一个循环运行良好,它只是定义我遇到问题的dominantx 的第二个for 循环。我对 Python 比较陌生,所以请原谅任何简单的修复或错误。我对仍然实现循环的任何建议持开放态度,当然,非常感谢任何帮助。谢谢!
【问题讨论】:
-
“(x,y) 中的 x 和 y 大于或等于列表中所有其他 x 和 y 的最大对”到底是什么意思?哪个是最大的:(2, 5) 还是 (4, 0)?
-
(4,0)。我想我没有详细说明。有序对是 x 和 y 之间的关系,所以我想要最大的 x 开始。然后,我将所有 y 相互比较,以使 x 和 y 都最大化。因此,在 x 已经最大化的情况下,y 正在被最大化。
标签: python list for-loop numpy