我已经彻底研究过了,但是还没有找到一个明确的(或迂回的)答案来回答以下问题:我如何创建一个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循环。我对Python比较陌生,所以请原谅任何简单的修复或错误。我对任何仍在执行循环的建议持开放态度,当然,也非常感谢任何帮助。谢谢您!
只需使用max:
如果您想要像
[1,1],[2,2]
等中那样的实际对。。相关问题 更多 >
编程相关推荐