列表内容如下:
li=[
['Glyma.13G081400','Glyma.06G111400'],
['Glyma.13G081600','Glyma.06G111300'],
['Glyma.13G081700','Glyma.06G110800'],
['Glyma.13G082300','Glyma.06G110600'],
['Glyma.13G082800','Glyma.06G110100'],
['Glyma.13G083100','Glyma.06G109800'],
['Glyma.13G083200','-'],
['Glyma.13G082700','-'],
['Glyma.13G081300','-'],
['Glyma.13G082500','-'],
['Glyma.13G082900','-'],
['Glyma.13G081800','-'],
['Glyma.13G083300','-'],
['Glyma.13G082400','-'],
['Glyma.13G082000','-'],
['Glyma.13G082100','-'],
['Glyma.13G082600','-'],
['Glyma.13G081500','-'],
['Glyma.13G083000','-'],
['Glyma.13G081900','-'],
['Glyma.13G082200','-'],
['-','Glyma.06G110000'],
['-','Glyma.06G109600'],
['-','Glyma.06G109700'],
['-','Glyma.06G110900'],
['-','Glyma.06G111600'],
['-','Glyma.06G110300'],
['-','Glyma.06G111000'],
['-','Glyma.06G111500'],
['-','Glyma.06G110400'],
['-','Glyma.06G110500'],
['-','Glyma.06G111200'],
['-','Glyma.06G110700'],
['-','Glyma.06G111100'],
['-','Glyma.06G109900'],
['-','Glyma.06G110200'],
]
想要让每列按大小排序,并互不影响
通过上个问题请教别人用的代码如下:
部分结果如下:
可以看到第一列下半部分是不对的,位置不太对
所以想请教大家
感觉排序实现不了,所以想有没有别的方法
想要让每列按大小排序,并互不影响是什么意思? 我理解要么按照第一列排序,要么按照第二列排序
你的意思难道是按照第一列排序的同时,第二列也要按照大小排序,这样的话原来的数据不是变了?
这样?
li.sort()
def f(li):
return li[1]
li.sort(key=f)
print(li)
```
你的需求没有理清楚。
一定要有一个明确的排序标准,并且这个标准得符合逻辑。
要么按第一列排序
要么按第二列排序。
如果要两列同时参与排序。
一定要有一个确定的标准。
譬如第一列的值优先参与排序,第一列的值相等时再比较第二列。
或者用两列中较大的值,或者较小的值。