Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python对部分列表项进行排序_Python_Python 3.x_List - Fatal编程技术网

Python对部分列表项进行排序

Python对部分列表项进行排序,python,python-3.x,list,Python,Python 3.x,List,我解析了一个tsv文件,并具有以下结构: [['x1','y1','x2','y2'], [1,1,0,80], [.95,1,.05,70], [.93,1,.1,65], … ] Myx1值按降序排列;从1开始到0。Myx2值按升序排列;从0到1。我需要两者都按升序排列。我不能只是翻转列表,否则x2将按降序排列。另外,请注意x1和y1是成对的,因此无论我们对x1做什么,我们都必须对y1做什么,以确保数据仍然保留 出于羞愧,我省略了我的尝试,但如果每个人都承诺不笑,我尝试的是添加一个-I,从

我解析了一个tsv文件,并具有以下结构:

[['x1','y1','x2','y2'],
[1,1,0,80],
[.95,1,.05,70],
[.93,1,.1,65],
…
]
My
x1
值按降序排列;从
1
开始到
0
。My
x2
值按升序排列;从
0
1
。我需要两者都按升序排列。我不能只是翻转列表,否则
x2
将按降序排列。另外,请注意
x1
y1
是成对的,因此无论我们对
x1
做什么,我们都必须对
y1
做什么,以确保数据仍然保留

出于羞愧,我省略了我的尝试,但如果每个人都承诺不笑,我尝试的是添加一个
-I
,从我的原始列表中获取最后一项
raw_data
是上面看到的数据结构

new_list = [[raw_data[2][-i], raw_data[3][-i]] for i in raw_data
不幸的是,这没有起作用


问题:我如何编写一个列表,使我的
x1
(以及相应的
y1
值)按升序排列

您可以利用这样一个事实:在比较元组时,比较基于第一个元素——对于相等的第一个元素,比较第二个元素。考虑到这一点,您可以首先将列表列表转换为元组列表,将每个“x1”值与相应的“y1”值关联,然后获得排序列表:

>>> lst = [['x1','y1','x2','y2'],[1,1,0,80],[.95,1,.05,70],[.93,1,.1,65]]
>>> sorted((x1, y1) for x1, y1, x2, y2 in lst[1:])
[(0.93, 1), (0.95, 1), (1, 1)]

您可以利用这样一个事实:在比较元组时,比较基于第一个元素——对于相等的第一个元素,比较第二个元素。考虑到这一点,您可以首先将列表列表转换为元组列表,将每个“x1”值与相应的“y1”值关联,然后获得排序列表:

>>> lst = [['x1','y1','x2','y2'],[1,1,0,80],[.95,1,.05,70],[.93,1,.1,65]]
>>> sorted((x1, y1) for x1, y1, x2, y2 in lst[1:])
[(0.93, 1), (0.95, 1), (1, 1)]

最好添加您以前尝试过的代码,以便我们更好地理解您的意图,从而使您得到更好的答案。为了避免误解,请始终包含示例数据的预期输出/结果。最好添加您以前尝试的代码,以便我们更好地理解您的意图,从而使您获得更好的答案。为了避免误解,请始终包含示例数据的预期输出/结果。