GVKun编程网logo

Python-如何通过内部列表的特定索引对列表列表进行排序?(python中列表通过什么索引元素)

16

本文将带您了解关于Python-如何通过内部列表的特定索引对列表列表进行排序?的新内容,同时我们还将为您解释python中列表通过什么索引元素的相关知识,另外,我们还将为您提供关于python–如何对

本文将带您了解关于Python-如何通过内部列表的特定索引对列表列表进行排序?的新内容,同时我们还将为您解释python中列表通过什么索引元素的相关知识,另外,我们还将为您提供关于python – 如何对列表中的特定元素进行排序?、python – 对包含列表的列表进行排序、python – 按索引对列表中的列表元素进行分组、python – 根据另一个列表的排序方式对列表进行排序的实用信息。

本文目录一览:

Python-如何通过内部列表的特定索引对列表列表进行排序?(python中列表通过什么索引元素)

Python-如何通过内部列表的特定索引对列表列表进行排序?(python中列表通过什么索引元素)

我有一个清单。例如,

[[0,1,''f''],[4,2,''t''],[9,4,''afsd'']]

如果我想按内部列表的字符串字段对外部列表进行排序,那么你将如何在python中执行此操作?

答案1

小编典典

这是itemgetter的工作

>>> from operator import itemgetter>>> L=[[0, 1, ''f''], [4, 2, ''t''], [9, 4, ''afsd'']]>>> sorted(L, key=itemgetter(2))[[9, 4, ''afsd''], [0, 1, ''f''], [4, 2, ''t'']]

也可以在此处使用lambda函数,但是在这种简单情况下,lambda函数的运行速度较慢

python – 如何对列表中的特定元素进行排序?

python – 如何对列表中的特定元素进行排序?

假设我有一个清单,

lst = [5,3,5,1,4,7]

我想让它从第二个元素3到结尾排序.

我以为我能做到:

lst[1:].sort()

但是,这不起作用.

我该怎么做?

解决方法

lst = lst[0:1] + sorted(lst[1:])

python – 对包含列表的列表进行排序

python – 对包含列表的列表进行排序

我有一个算法生成一个包含未知数量的子列表的列表,每个子列表具有未知数量的字符串元素以及一个浮点数.我需要根据这个浮点数在主列表中排序这些子列表.此外,不重新排列子列表中的字符串的顺序.

我目前正在运行一段代码(下面链接),使用dict对其进行排序.你可以看到我正在获得KeyErrors.我之前没有使用过dicts,所以我不知道从哪里开始.如果有一个更好的方式,那么一个词也可以打开. http://ideone.com/wr8UA

花车不是顺序的,我不知道这是多大的交易,这是使用我有的方法.意思是,偶尔会跳过数字(在Ideone的示例列表中,它们是1.0,2.0,4.0;跳过3.0以在运行时模拟这种情况).它们也不在子列表中的任何特定位置,因此所有for循环都在搜索它们.

希望这很清楚,我之前尝试过这样做并且得到了回报而不是关于什么让人困惑的问题.如果有什么不对劲,请告诉我.感谢大家!

编辑:按要求在正文中编码:

listed = [ ["1 NWZ","1 RWZ","2 NWZ","2 RWZ","1E HZ","1W HZ","1-2EHZ","2W HZ"],["1 NWZ","3E FZ","SNOK","POK",3.0,"2E AK",["1 BW","1AW AS","1BWAK","TESTK",1.0]] 

dictionary={}
for sub_list in listed:
    for value in sub_list:
        if isinstance(value,float):
            dictionary[str(value)]=sub_list
        else:
            pass
ordered_list=[]
    for i in range(1,len(listed)+1):
    if dictionary[str(i)]:
        ordered_list.append(dictionary[str(i)])

for sub_list in ordered_list:
    print sub_list

解决方法

sort method有一个方便的键关键字参数,让您指定一个函数来调用以确定列表应该排序的信息.

对列表进行排序就像编写一个返回每个子列表中包含的浮点值的函数一样简单:

def sortOnFloat(sublist):
    return [v for v in sublist if isinstance(v,float)]

请注意,我只返回所有浮点值的列表;比只返回一个容易得多.即使子列表中有0个浮点值,这也会起作用.

像这样排序你的列表:

listed.sort(key=sortOnFloat)

我克隆了你的例子并用上面的方法更新了它:http://ideone.com/u8ufK

产生的输出:

['1 BW','1AW AS','3E FZ','1BWAK','POK','TESTK','1-2EHZ','2E AK',1.0]
['1 NWZ','1 RWZ','2 NWZ','2 RWZ','1E HZ','1W HZ','2W HZ']
['1 NWZ','SNOK','2W HZ']

请注意,.sort()方法就地对列表进行排序.您还可以使用sorted() function生成已排序的新列表;它采用相同的论点:

orderedlist = sorted(listed,key=sortOnFloat)

但请注意,就地排序总是更快.

python – 按索引对列表中的列表元素进行分组

python – 按索引对列表中的列表元素进行分组

我试图获取一个列表列表,并返回一个列表列表,其中包含原始列表列表索引中的每个元素.我知道那个措辞严厉.这是一个例子.

说我有以下列表列表:

[[1,2,3],[4,5,6],[7,8,9]]

我想得到另一个列表列表,其中每个列表是特定索引处每个元素的列表.例如:

[[1,9]] becomes [[1,4,7],[2,8],[3,6,9]]

因此,返回列表中的第一个列表包含每个原始列表的第一个索引处的所有元素,依此类推.我被卡住了,不知道如何做到这一点.任何帮助,将不胜感激.谢谢.

解决方法

>>> [list(t) for t in zip(*[[1,9]])]
[[1,9]]

python – 根据另一个列表的排序方式对列表进行排序

python – 根据另一个列表的排序方式对列表进行排序

我有2个像这样的列表:

A = [10,29,30,49,21,3,5,6]
    B = [y,z,t,e,q,f,h,d]

我希望列表B在sort()函数之后以与列表A相同的方式排序,输出示例:

A.sort()
    print(A) 
    >>>[3,6,10,49]
    print(B)
    >>>[f,d,y,e]

解决方法

将两个列表压缩在一起.对每对中的第一项进行排序,然后解压缩.

今天关于Python-如何通过内部列表的特定索引对列表列表进行排序?python中列表通过什么索引元素的分享就到这里,希望大家有所收获,若想了解更多关于python – 如何对列表中的特定元素进行排序?、python – 对包含列表的列表进行排序、python – 按索引对列表中的列表元素进行分组、python – 根据另一个列表的排序方式对列表进行排序等相关知识,可以在本站进行查询。

本文标签: