【python sort、sorted高级排序技巧】教程文章相关的互联网学习教程文章

python – 递归识别排序列表【代码】

作为一个递归实践练习,我正在编写一个Python函数,以递归方式识别输入列表是否从最小到最大的实数排序,然后返回一个布尔值. 我的代码是:def det_sorted(listA):if len(listA) == 1:return(True)else:if listA[0] <= det_sorted(listA[1:]):return(True)elif listA[0] > det_sorted(listA[1:]):return(False)此函数始终返回“False”.一般问题:如何正确地在列表中递归迭代?我的具体问题:我在这里做错了什么?解决方法:你很接近,你...

Python 3 List:如何根据数字和字母对[(‘NJ’,81),(‘CA’,81),(‘DC’,52)]进行排序?【代码】

如果我的名单是[(‘IL’,36),(‘NJ’,81),(‘CA’,81),(‘DC’,52),(‘TX’,39)], 我怎样才能对它进行排序以便我的结果如此[(‘CA’,81),(‘NJ’,81),(‘DC’,52),(‘TX’,39),(‘IL’,36)]?解决方法:非常直截了当:your_list.sort(key=lambda e: (-e[1], e[0]))例如>>> your_list = [('IL', 36), ('NJ', 81), ('CA', 81), ('DC', 52), ('TX', 39)] >>> your_list.sort(key=lambda e: (-e[1], e[0])) >>> your_list [('CA', 81), ...

剑指offer 最小k个数 排序方法汇总(Python)

方法一: 蒂姆排序# -*- coding:utf-8 -*- class Solution:def GetLeastNumbers_Solution(self, tinput, k):# write code hereif tinput == [] or k > len(tinput):return []tinput.sort()return tinput[: k] 方法二:快速排序# -*- coding:utf-8 -*- class Solution:def GetLeastNumbers_Solution(self, tinput, k):# write code heredef quick_sort(lst):if not lst:return []pivot = lst[0]left = quick_sort([x for x in lst[1: ...

在python中排序元组列表【代码】

我有一个列表,my_list:[['28/02/2014, apples'] ['09/07/2014, oranges'] ['22/04/2014, bananas'] ['14/03/2014, tomatoes']]我想按日期订购.这是我正在使用的代码:def display(my_list):for item in my_list:x = ([item[0] + ": " + item[1]])print x我尝试过对x(sorted,x.sort()等)应用不同形式的排序,但似乎没有任何效果.如何从最早到最晚按日期排序列表?解决方法:您可以使用sorted()来应用一个键函数,该函数从每个子列表中...

如何在python中根据不同的对象值对对象列表进行排序?【代码】

我有一个有几个不同价值观的课程.我希望能够通过不同的值对这些对象的列表进行排序,但我不知道该怎么做.我希望能够为任何值和两个方向(最少到最大,反之亦然)对它们进行排序. 例如,下面是一个示例类,以及一个示例对象列表:class Sample(object):def __init__(self, name, sampleValue1, sampleValue2):self.nameself.value1 = sampleValue1self.value2 = sampleValue2def __repr__(self):return self.name# creating sample object...

python – 按组件排序字符串列表【代码】

长列表包含一些要排序的元素. 实际上每个元素有4个内容:名称,输入/输出,区域和日期&时间,由’?’连接. (‘?’可以更改.)我想将列表重组为排序顺序.a_list = ["Chris~Check-in~Zoom A~11/13/2013 05:20", "Chris~Check-in~Zoom G~11/15/2013 14:09", "Frank E~Check-in~Zoom K~11/11/2013 08:48", "Frank E~Check-in~Zoom K~11/15/2013 21:32", "Kala Lu S~Check-in~Zoom N~11/13/2013 07:20", "Milly Emily~Check-in~Zoom G~11/13...

python – jinja2:按定义的键顺序排序dict?【代码】

所以我想说我想显示一些这样的数据:? b is foo ? a is bar ? c is baz…但我的数据集看起来像这样(或任何其他顺序,因为JSON不关心):{ "a": "bar", "b": "foo", "c": "baz" }如何告诉Jinja2按键顺序显示我的数据?如果我不确定元素c是否总是存在,该怎么办? 我认为这将是这样的,无济于事:<ul> {% for key, value in my_dict.items()|dictsort(by=['b', 'a']) %}<li>{{ key }} is {{ value }}</li> {% endfor %} </ul>解决方法:您...

python – 如何有效地在大型排序数组中找到最接近另一个值X的值【代码】

对于排序列表,如何找到接近给定数字的最小数字? 例如,mysortedList = [37, 72, 235, 645, 715, 767, 847, 905, 908, 960]如何快速找到小于或等于700的最大元素? (如果我有1000万个元素,那么线性搜索会很慢).在这个例子中,答案是645.解决方法:您可以使用bisect模块:import bisectdata = [37, 72, 235, 645, 715, 767, 847, 905, 908, 960]location = bisect.bisect_left(data, 700)result = data[location - 1]这是标准库中的一个...

python基本排序算法演示【代码】

""" 基本排序算法示例 """class Sort:def __init__(self,list):self.list = list # 冒泡排序def bubble(self):n = self.list# 外层表示比较多少轮for i in range(len(n) - 1):# 内层表示每轮比较多少次for j in range(len(n) - 1 - i):# 前一个数比后一个数大则交换位置if n[j] > n[j + 1]:n[j], n[j + 1] = n[j + 1], n[j]return n # 选择排序def select(self):n = self.listfor i in range(len(n)-1):min = i # 假定i号位置数字...

python – 有没有办法在使用operator.itemgetter()作为排序键时强制转换值?【代码】

我有一个包含字符串代表数字的列表列表:nums = [['1','3'],['2','2'],['1','2'],['0','2'],['11','2']]我需要通过第一个和第二个条目对这些数字进行排序,而不修改原始列表中数字的字符串表示.此外,想要避免创建另一个列表的第二个副本,其中所有内容都明确映射到整数 – 想象这是一个巨大的列表. sort()和sorted()都可以很好地处理元组和列表,所以使用lambda键,我可以执行以下操作:>>> sorted(nums, key=lambda n: (int(n[0]),int...

python – 在R和Numpy中排序【代码】

我试图将一些R代码转换为numpy.我有一个矢量如下:r=[2.000001.640001.360001.160001.040001.000001.640001.280001.000000.800000.680000.640001.360001.000000.720000.520000.400000.360001.160000.800000.520000.320000.200000.160001.040000.680000.400000.200000.080000.040001.000000.640000.360000.160000.040000.00000]我正在尝试转换以下R代码index <- order(r)通过以下代码进入numpyindex = np.argsort(r)结果如下 NumPy的...

python – 如何按时间顺序重新排序mbox文件?【代码】

我有一个使用evolution创建的单个假脱机mbox文件,其中包含一系列我希望打印的电子邮件.我的问题是电子邮件没有按时间顺序放入mbox文件中.我想知道使用bash,perl或python从头到尾订购文件的最佳方法.我希望收到发给我的文件,并发送给我发送的文件.是否可能更容易使用maildir文件等? 电子邮件目前以以下格式存在:From x@blah.com Fri Aug 12 09:34:09 2005 Message-ID: <42FBEE81.9090701@blah.com> Date: Fri, 12 Aug 2005 09:34:...

python 学习笔记(三)根据字典中值的大小对字典中的项排序【代码】

字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现: 一、利用zip函数将字典数据转化为元组再用sorted() 排序 1 from random import randint 2 # 用随机函数生成待排序的字典数据 3 my_dict = {x: randint(60, 100) for x in abcxyzgkj} 4 # 将字典数据转化为元组,把字典的值作为元组的第0项,键作为元组的第1项 5 my_tup...

在python中,结合3个dicts和按dict键之一进行排序的最有效方法是什么?【代码】

例:list1 = {'52': {'timestamp':'1234567890', 'name':'Jason Bourne'},'42': {'timestamp':'2345678891', 'name':'Sarah Parker'}}list2 = {'61': {'timestamp':'3456789012', 'name':'Mike Williams'},'12': {'timestamp':'4567889123', 'name':'Robert Tissone'}}list3 = {'56': {'timestamp':'4567890123', 'name':'Peter Blake'},'71': {'timestamp':'5678891234', 'name':'Alex Cheng'}}//Best way to combine list1, list...

python – 为最大成对匹配排序数组【代码】

我有一个数组:array([[ 4, 10],[ 4, 2],[ 0, 7],[ 5, 11],[ 6, 8],[ 3, 6],[ 9, 7],[ 2, 11],[ 9, 5],[ 8, 1]])我想要一种方法来对值对进行排序,以便尽可能多的成对2元素集具有公共值.这是所需有序数组的示例:array([[ 4, 10],[ 4, 2],[ 2, 11],[ 5, 11],[ 9, 5],[ 9, 7],[ 0, 7], #note the gap here:[ 8, 1],[ 6, 8],[ 3, 6]])关于这些阵列有几个条件.没有重复对(即:[1,0]或[0,1]将出现在数组的其他位置,如果[...