首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Jython/Python对2D列表进行排序

用Jython/Python对2D列表进行排序
EN

Stack Overflow用户
提问于 2014-11-04 15:34:13
回答 1查看 782关注 0票数 1

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

使用这个信息,我构建了一个2D列表,我想通过queueName订购。

虽然我可以在python控制台中成功地完成以下两种方法:

代码语言:javascript
运行
复制
from operator import itemgetter
L=[["queueName1", 1, 2], ["queueName2", 2, 3], ["queueName3", 4, 1]]
sorted(L, key=itemgetter(0))

代码语言:javascript
运行
复制
L=[["queueName1", 1, 2], ["queueName2", 2, 3], ["queueName3", 4, 1]]
sorted(L, key=lambda x: x[0])

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

代码语言:javascript
运行
复制
list2d.sort(key=lambda x: x[0])

我知道错误:

代码语言:javascript
运行
复制
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,也不会更好,因为我得到了以下错误:

代码语言:javascript
运行
复制
Problem invoking WLST - Traceback (innermost last):
  File "/home/user/scripts/pythonscripts/get_jms_config.py", line 5, in ?
ImportError: cannot import name itemgetter

有人有什么建议吗?

编辑:

代码语言:javascript
运行
复制
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...',

你好,黛博拉

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-04 15:58:15

听起来好像是在2.4之前运行Python2.4版本,也就是引入.sort(key=...)的时候。您可以尝试使用cmp()版本的.sort()

代码语言:javascript
运行
复制
list2d.sort(lambda left, right: cmp(left[0], right[0]))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26739026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档