python元组排序(Python3,怎么按指定元组顺序将列表排序)

1.Python3,怎么按指定元组顺序将列表排序

在Python中可以使用sorted函数对list进行排序,但是如果排序的对象是一个包含tuple的list时,sorted函数会使用tuple的第一个元素。

如果想要使用tuple的第二个元素进行排序,可以向sorted函数传入一个key参数,key参数必须是一个函数,输入是list的一个元素,输出最好是一个数字或简单的字符。

构造这样一个函数可以使用匿名函数lambda,示例代码如下:

myList = [('dungeon',7),('winterfell',4),('bran',9),('meelo',6)]

print sorted(myList, key=lambda x:x[1])

# [('winterfell', 4), ('meelo', 6), ('dungeon', 7), ('bran', 9)]

2.python 元组中有字典,如何对其进行排序

disks_info=[{u'diskname': u'/dev/vda', u'disktype': u'HDD', u'tag': [u'mounted', u'boot'], u'slotnum': None, u'rpm': 7200, u'size': 50}, {u'diskname': u'/dev/vdb', u'disktype': u'HDD', u'tag': [u'osd_data'], u'slotnum': None, u'rpm': 7200, u'size': 30}, {u'diskname': u'/dev/vdc', u'disktype': u'HDD', u'tag': [u'osd_data'], u'slotnum': None, u'rpm': 7200, u'size': 30}, {u'diskname': u'/dev/vdd', u'disktype': u'HDD', u'tag': [u'osd_data'], u'slotnum': None, u'rpm': 7200, u'size': 30}, {u'diskname': u'/dev/vde', u'disktype': u'HDD', u'tag': [u'osd_data'], u'slotnum': None, u'rpm': 7200, u'size': 30}, {u'diskname': u'/dev/vdf', u'disktype': u'HDD', u'tag': [u'osd_data'], u'slotnum': None, u'rpm': 7200, u'size': 30}]

disks_info_sorted=sorted(disks_info,key=lambda x:x[u'size'],reverse=True)

print(disks_info_sorted)

3.python, 非空元组列表中,如何对每个元组中元素的平均值按升序排序

用 List 类的 sort 方法可以很方便实现。

sample = [(2, 6, 4, 5), (1, 7), (4, 3, 4), (2, 3, 8, 1), (4,)]sample.sort(key=lambda x: len(x))sample.sort(key=lambda x: sum(x)/len(x))第一次根据元组长度排序,保证长度较短的元素相对位置靠前(如果没有长度排序,直接进行平均值排序,元素 (1, 7) 会排在 (4,) 的前面,无法得到正确的顺序);第二次根据元组元素的平均值排序,得到正确的结果;排序后 sample 的输出结果:[(2, 3, 8, 1), (4, 3, 4), (4,), (1, 7), (2, 6, 4, 5)]。

4.python items()是怎么排序的

在Python中,当你排序一个元组时,如下所示:

>>> items = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]

>>> sorted(items)

[(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')]

默认情况下,sort和sorted内建函数会优先排序第一个元素,然后再排序第二个元素,大写字母会排在小写字母前面。当你想要不区分大小写排序时,可能会按如下写代码:

>>> sorted(items, key=str.lower)

Traceback (most recent call last):

File "", line 1, in

TypeError: descriptor 'lower' requires a 'str' object but received a 'tuple'

出现了错误,lower需要的是字符串对象,但是接收到了元组。下面的应用lamdba,返回一个元组:

>>> sorted(items, key=lambda x: (x[0], x[1].lower()))

[(0, 'a'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A')]

我确定你知道可以通过 sorted(items, reverse=True, 。) 将其反转,但是如果你想要依赖你提供的key来获得不同的排序顺序时,该怎么办呢?使用lambda函数返回一个元组可以实现,下面是一个更高级的结构排序

>>> peeps = [{'name': 'Bill', 'salary': 1000}, {'name': 'Bill', 'salary': 500}, {'name': 'Ted', 'salary': 500}]

>>> sorted(peeps, key=lambda x: (x['name'], x['salary']))

[{'salary': 500, 'name': 'Bill'}, {'salary': 1000, 'name': 'Bill'}, {'salary': 500, 'name': 'Ted'}]

如果你想要使salary逆序,只需要如下改动:

>>> sorted(peeps, key=lambda x: (x['name'], -x['salary']))

[{'salary': 1000, 'name': 'Bill'}, {'salary': 500, 'name': 'Bill'}, {'salary': 500, 'name': 'Ted'}]

5.python一个列表中元素为元祖,想要根据元祖的第二个值进行排序,怎

print sorted(a,key=lambda x: x[1])[('s', 0, ''), ('s', 6, ''), ('e', 7, ''), ('e', 14, ''), ('s', 14, ''), ('s', 706, '')]

1、说明

1)序列是python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现。

2)元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

2、示例

1)列表

list1 = ['google', 'runoob', 1997, 2000];

list2 = [1, 2, 3, 4, 5 ];

list3 = ["a", "b", "c", "d"];

2)元组

tup1 = ('google', 'runoob', 1997, 2000);

tup2 = (1, 2, 3, 4, 5 );

tup3 = "a", "b", "c", "d";

6.关于Python的序列、列表和元组

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

比如,列出班里所有同学的名字,就可以用一个list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']

>>> classmates

['Michael', 'Bob', 'Tracy']

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

详细可以看这里的教程:/wiki//

7.python 怎么给element为tuple的dictionary排序

dictionary是无序的,字典输出只能保证键-值关联的一致,不一定保证顺序的。

要顺序就转成list吧。

a={

(0, 1): [(0, 0), (1, 1)],

(1, 0): [(0, 0), (1, 1)],

(0, 0): [(0, 1), (1, 0)],

(1, 1): [(0, 1), (1, 0)]}

c=[(k,a[k]) for k in sorted(a)]

print(c)[((0, 0), [(0, 1), (1, 0)]), ((0, 1), [(0, 0), (1, 1)]), ((1, 0), [(0, 0), (1, 1)]), ((1, 1), [(0, 1), (1, 0)])] 以list输出才能有顺序

python元组排序

转载请注明出处编程代码网 » python元组排序(Python3,怎么按指定元组顺序将列表排序)

资讯

Python类虚函数(类中snip是什么python)

阅读(50)

本文主要为您介绍Python类虚函数,内容包括python怎样调用基类函数,python中的析构函数多继承时为什么只析构自己,对于父类不会被析构,python类中类方法和类实例有什么区别。snip 的英文原意是削减,剪去的意思。在Python 中,snip 就是代表省略

资讯

python运行指定文件(如何用Python打开指定的某个文件夹)

阅读(50)

本文主要为您介绍python运行指定文件,内容包括如何用Python打开指定的某个文件夹比如我要用Python打开D盘里,python中,如何用指定的程序打开指定的文件,比如在windows下,用,怎么在Python进入指定文件夹。操作系统一般不允许程序直接操作磁

资讯

python处理中文字符串(Python3.5如何对中文字符串进行处理)

阅读(46)

本文主要为您介绍python处理中文字符串,内容包括Python3.5如何对中文字符串进行处理,请问python怎么可以很好的处理中文字符,python处理中文字符串用什么编码方式。在Python的string前面加上r, 是为了告诉编译器这个string是个raw string,不

资讯

python能干什么知乎(java工程师一般用python做什么知乎)

阅读(51)

本文主要为您介绍python能干什么知乎,内容包括python可以做什么知乎,python可以做什么知乎,java工程师一般用python做什么知乎。#做网站后台Python在网站后台这边有大量的成熟的框架,如django,flask,bottle,tornado,我曾经用过flask

资讯

python构造字典(python字典中如何创建字典)

阅读(22)

本文主要为您介绍python构造字典,内容包括python字典中如何创建字典,Python中的字典是什么,Python中创建字典的几种方法总结。python---创建字典的方式用{}创建字典代码:x = {"a":"1", "b":"2"}print x输出:{a: 1, b:

资讯

macpythonbs4(mac版python怎么安装beautifulsoup)

阅读(22)

本文主要为您介绍macpythonbs4,内容包括在mac上自己安装了python3.4,怎么安装各种库,mac版python怎么安装beautifulsoup,如何在MAC系统下的python中导入第三方库,如lxml和requests搜狗。安装pythonsudo rm -rf /System/Library/Frameworks/

资讯

base64pythonhex(base64.decodestringpython怎么实现)

阅读(20)

本文主要为您介绍base64pythonhex,内容包括Python怎么能简单实现Base64编码和解码,Python怎么能简单实现Base64编码和解码,pythonbase64在哪个模块。Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输

资讯

python布尔取反(将布尔型取反的函数是什么)

阅读(23)

本文主要为您介绍python布尔取反,内容包括将布尔型取反的函数是什么,在python中为什么不能对字符取反,变量show是布尔型的,这里取反怎么错了。如果T为布尔型,则取反的函数是 NOT T。布尔型的值只有两个:false(假)和true(真)。false的序号为0,true

资讯

gopython速度(gopython不知道选哪个)

阅读(20)

本文主要为您介绍gopython速度,内容包括gopython不知道选哪个,golangVSpython性能谁更强,gopython不知道选哪个。我感觉还是python+c比较好。就我身边的人来看,得出如下观点:c++:学一样可以解决任何问题,就是学习的成本太高,时间脑力不够学不好

资讯

pythonasic(python中**是什么意思)

阅读(39)

本文主要为您介绍pythonasic,内容包括python中global的作用是什么,pythonflag什么意思,python中**是什么意思。** 在python里面表示幂运算传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以

资讯

Python类虚函数(类中snip是什么python)

阅读(50)

本文主要为您介绍Python类虚函数,内容包括python怎样调用基类函数,python中的析构函数多继承时为什么只析构自己,对于父类不会被析构,python类中类方法和类实例有什么区别。snip 的英文原意是削减,剪去的意思。在Python 中,snip 就是代表省略

资讯

python运行指定文件(如何用Python打开指定的某个文件夹)

阅读(50)

本文主要为您介绍python运行指定文件,内容包括如何用Python打开指定的某个文件夹比如我要用Python打开D盘里,python中,如何用指定的程序打开指定的文件,比如在windows下,用,怎么在Python进入指定文件夹。操作系统一般不允许程序直接操作磁

资讯

python处理中文字符串(Python3.5如何对中文字符串进行处理)

阅读(46)

本文主要为您介绍python处理中文字符串,内容包括Python3.5如何对中文字符串进行处理,请问python怎么可以很好的处理中文字符,python处理中文字符串用什么编码方式。在Python的string前面加上r, 是为了告诉编译器这个string是个raw string,不

资讯

python能干什么知乎(java工程师一般用python做什么知乎)

阅读(51)

本文主要为您介绍python能干什么知乎,内容包括python可以做什么知乎,python可以做什么知乎,java工程师一般用python做什么知乎。#做网站后台Python在网站后台这边有大量的成熟的框架,如django,flask,bottle,tornado,我曾经用过flask

资讯

python3md5解密(如何使用Python3的两个库来加解密字符串)

阅读(47)

本文主要为您介绍python3md5解密,内容包括如何使用Python3的两个库来加解密字符串,python,求一个获取文件md5的算法,python,如何对文件内容进行md5处理。哈希如果需要用到安全哈希算法或是消息摘要算法,那么你可以使用标准库中的 hashlib 模