gpt4 book ai didi

python - 在 Jython/Python 中对二维列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:54 27 4
gpt4 key购买 nike

我正在使用 WLST (python/jython) 获取一些 WebLogic 资源的配置。我在 jms 模块的队列中循环,并为每个队列恢复名称和一些其他参数。

根据此信息,我构建了一个二维列表,我想按 queueName 对其进行排序。

虽然我可以在 python 控制台中通过这两种方式成功地做到这一点:

from operator import itemgetter
L=[["queueName1", 1, 2], ["queueName2", 2, 3], ["queueName3", 4, 1]]
sorted(L, key=itemgetter(0))

L=[["queueName1", 1, 2], ["queueName2", 2, 3], ["queueName3", 4, 1]]
sorted(L, key=lambda x: x[0])

当我使用 .py 脚本时,我的 WL 服务器(版本 10.3.5)中的 python/jython 版本(我真的不知道用的是什么)不喜欢这样:

list2d.sort(key=lambda x: x[0])

我得到错误:

Problem invoking WLST - Traceback (innermost last):
File "/home/user/scripts/pythonscripts/get_jms_config.py", line 98, in ?
File "/home/user/scripts/pythonscripts/get_jms_config.py", line 69, in getInfo
TypeError: sort() takes no keyword arguments

如果我尝试使用 itemgetter 也好不到哪里去,因为我收到以下错误:

Problem invoking WLST - Traceback (innermost last):
File "/home/user/scripts/pythonscripts/get_jms_config.py", line 5, in ?
ImportError: cannot import name itemgetter

有人有什么建议吗?

编辑:

def getQueueInformation():
try:
list2d = []
j = 1
jmsSystemResources = cmo.getJMSSystemResources();
for jmsSystemResource in jmsSystemResources:
queues = jmsSystemResource.getJMSResource().getQueues();
for queue in queues:
# print some information
row = []
row.append(queue.getName())
row.append(str(queue.getDeliveryParamsOverrides().getRedeliveryDelay()))
row.append(str(queue.getDeliveryFailureParams().getRedeliveryLimit()))

list2d.append(row)
j += 1
return list2d
except WLSTException:
print 'an error occurred...',

问候,黛博拉

最佳答案

听起来您正在运行 2.4 之前的 Python 版本,即 .sort(key=...)被介绍。您可以尝试使用 cmp() .sort() 的版本:

list2d.sort(lambda left, right: cmp(left[0], right[0]))

关于python - 在 Jython/Python 中对二维列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26739026/

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