python 中的 sorted() 和 lambda 函数

问题描述 投票:0回答:1

我的问题是,我不明白这个 lambda 函数对 xml 文档进行排序。 它有效,但我不明白。 lambda 的表达式是: (child.tag,child.get('volume')) 我不明白。

有人可以解释一下吗?

谢谢

#Example of xml document
<warehouse>
    <sale product="name1" price="1">
        <idSale>1</idSale>
        <volume>10</volume>
        <store>store1</store>
    </sale>
</warehouse>

Here the python code:
#importing xml document as a tree
ree = ET.parse("warehouse.xml")
root = tree.getroot()

#sorting by volume
root[:] = sorted(root, key=lambda child: (child.tag,child.get('volume')))

另外,如果我使用 as 表达式:

(child.get('volume'))
如果我传递“产品”而不是数量,它就会排序...... 我错过了什么?

python sorting lambda
1个回答
0
投票

元组和列表使用相应元素的比较按字典顺序进行比较。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须具有相同的类型和相同的长度。

如果不相等,则序列的排序与其第一个不同元素的排序相同。例如,cmp([1,2,x], [1,2,y]) 返回与 cmp(x,y) 相同的结果。如果对应的元素不存在,则将较短的序列排在前面(例如,[1,2] < [1,2,3]).

例如:

(1, 2) > (3, 4)  # False

(1, 2) > (3, 4, 5)  # False

(6, 1) > (1, 10) # True

© www.soinside.com 2019 - 2024. All rights reserved.