离散数学,偏序关系,第六问能否提供些例子

离散数学,偏序关系,第六问能否提供些例子

img


离散数学,偏序关系,第六问能否提供些例子

例如编程中,有如下的python的列表l

l=[
  {"a":1,"b":2}, 
  {"a":4,"b":1}, 
  {"a":2,"b":5}, 
  {"a":1,"b":4},
  {"a":1,"b":1},
  {"a":1,"b":3}
]

对列表l做排序,只根据a字段做排序

l.sort(key=lambda item:item['a'])

结果如下:

[
  {'a': 1, 'b': 2}, 
  {'a': 1, 'b': 4}, 
  {'a': 1, 'b': 1}, 
  {'a': 1, 'b': 3}, 
  {'a': 2, 'b': 5}, 
  {'a': 4, 'b': 1}
]

可以看到字段a是按从小到大排序了,但是字段a都是1的时候,这几个元素并没有按字段b排序:

{'a': 1, 'b': 2}, 
{'a': 1, 'b': 4}, 
{'a': 1, 'b': 1}, 
{'a': 1, 'b': 3},

如果我们使用多字段排序

l.sort(key=lambda item:(item['a'],item['b']))

则得到排序后的结果是先按a字段排序,a字段相同的再按b字段排序:

[
  {'a': 1, 'b': 1}, 
  {'a': 1, 'b': 2}, 
  {'a': 1, 'b': 3}, 
  {'a': 1, 'b': 4}, 
  {'a': 2, 'b': 5}, 
  {'a': 4, 'b': 1}
]

可以看到a都为1时,是按元素b从小到大排序的:

{'a': 1, 'b': 1}, 
{'a': 1, 'b': 2}, 
{'a': 1, 'b': 3}, 
{'a': 1, 'b': 4}

偏序在编程中是有实际重要的作用的,排序中比较两个元素的时候,元素之间的比较关系是否满足偏序,会导致排序结果的不同。更多的应用,在数据库中的查询中,有 order by的关键字,可以指定数据库查询中根据1个到多个字段做排序。

请提供一些上下文, 让大家能理解你的问题, 你需要什么样的例子?