在sort函数中的使用lambda进行条件排序导致list被置0

本来写了一个def,想着dug一下,然后就发现问题了。
def DeleteArraylementsAccordingToPercentage(lorddata,percentage,name):
#按照百分比删除数组元素,并返回第二个数据
array = []
openpklfile = open(lorddata + '.pkl','rb')
start = pickle.load(openpklfile)
start.sort(start,key = lambda x:x[1])
lenth = len(start) * float(percentage)
for i in range(lenth):
del start[i]
savefile = open(name + '.pkl', 'wb')
pickle.dump(start, savefile)
savefile.close()
openpklfile.close()图片说明

1

3个回答

迭代的同时删除,会导致索引变化,可以循环从后往前删除,或者将要删除的条目添加到另一个list,再删除。

1

为什么要del start[i]
删除,删除了,元素不就清零了

0

你的这两行:

 for i in range(lenth):
del start[i]

改成:

start = start[length:]

就可以

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【python】list排序 (内置sort函数)
最近总是见到:res_list.sort(lambda x,y:cmp(len(x),len(y)))  【目的,对res_list=['a','ba','bdc','a']按照每个字符串的长度对列表进行排序,最长的字符串排序后会位于列表的最后一个】,最终查到相关资料,在此进行分享: 参考链接: python的reduce,lambda,和排序 https://www.2cto.com/kf/
使用lambda进行排序
1.使用lambda对list进行排序 >>> a = [('a',1),('b',5),('e',4),('f',2)] >>> sorted(a,key=lambda a :a[1]) [('a', 1), ('f', 2), ('e', 4), ('b', 5)] 方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本 方法2.用b...
#自己实现列表的sort函数,支持逆序,可以排序任意类型的数据。
def sort(lt, key=None, reverse=False): n = len(lt) for i in range(n-1): for j in range(i+1, n): # 确定是否交换的标志位 if key: is_swap = (key(lt[i]) &lt...
java 中List排序函数Collections.sort的用法详解
List排序函数Collections.sort 1.Java提供的默认排序算法 List list = new ArrayList(); list.add(53.6); list.add(45.9); list.add(75.1); list.add(89.3); list.add(20.8); //升序 Collections.sort(list); System.out.pri
c++的sort函数用lamda表达式自定义排序
sort函数,可以自定义compare的方法或者重载>来完成自定义排序,而lamda表达式,也可以完成这个功能,测试代码如下:#include <iostream> #include <vector> #include <algorithm> using namespace std; class A { public: A(int _a,int _b)...
深入理解 c# 第一章 使用lambda表达式 对 List <Product> 进行排序
class ListSortWithLambdaExpression { static void Main() { List&amp;lt;Product&amp;gt; products = Product.GetSampleProducts(); products.Sort( (first,...
STL中关于list容器的sort函数详解
写在前面 因为在stl中stl_algo中提供有sort函数,他的函数原型: template &amp;lt;class RandomAccessIterator&amp;gt; inline void sort(RandomAccessIterator first, RandomAccessIterator last); template &amp;lt;class RandomAccessIterator, ...
java8使用lambda表达式对集合倒序排序
List&amp;amp;lt;TrafficJeevesModel&amp;amp;gt; tjIng = trafficeJeevesServer.selectTrafficJeevesIngInfoList(); //根据超时天数倒序排序 Comparator&amp;amp;lt;TrafficJeevesModel&amp;amp;gt; comparator = (t1, t2) -&amp;amp;gt; t1.getOverTimeDa...
lambda表达式在sort中的使用
文章目录一、lambda表达式一般用法二、 lambda表达式在sort中的使用sort基本用法key可以为一个函数使用lambda表达式 一、lambda表达式一般用法 Blueprint lambda argument: manipulate(argument) Example add = lambda x, y: x + y print(add(3, 5)) # Output: 8...
python sort搭配lambda实现多字段排序
sort的常用方法你一定都会了,但是如果要排序的对象的每个元素又含有多个元素,要按指定的内部某个元素排序该怎么实现呢?正常是这样来做的: &amp;gt;&amp;gt;&amp;gt; def return_item(item): ... return item[1] &amp;gt;&amp;gt;&amp;gt; pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'fou...
使用sort对list进行倒序排序
sorted有4个参数sorted(iterable,cmp,key,reverse)iterable是需要排序的变量,cmp 和C语言里面的差不多,key是排序的关键字,reverse是是否倒序(True/False,注意区分大小写)能够正确运行的排序如下:&amp;gt;&amp;gt;&amp;gt; a=[['a',0],['b',1],['c',3]] &amp;gt;&amp;gt;&amp;gt; bb=sorted(a,key=...
java中list排序:Collections.sort() 排序函数的用法
用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下:
排序sort()函数的使用
本文转自点击打开链接    STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。    sort是STL中提供的算法,头文件为#include以及using namespace std; 函数原型如下: template void sort ( RandomAccessIterator first, RandomAccessIterator last
Lambda表达式之List条件filter过滤
List&amp;lt;CourseLessonExt&amp;gt; Taglist=courseLessonExtList.stream() .filter(CourseLessonExt-&amp;gt;(CourseLessonExt.getType()==3)) .collect(Collectors.toList());
python 自己实现列表的sort函数,支持逆序,可以排序任意类型的数据。 实现列表的排序,要求支持逆序和指定标准(key)
def paixv(lt,reverse = None): for i in range(len(lt) - 1): for j in range(i+1,len(lt)): if reverse : if key(lt[i]) &amp;amp;lt; key(lt[j]): t = lt[i] lt[i] = lt[j] lt[j] = t else: if key(lt[i]) &amp;amp;gt; key(lt[j]...
今天才发现python的sort有个key参数,我好圡...
[size=large] &gt;&gt;&gt; a=range(10) &gt;&gt;&gt; b=a[::-1] &gt;&gt;&gt; a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] &gt;&gt;&gt; b [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] &gt;&gt;&gt; c=zip(a,b) &gt;&gt;&gt; c [(0, 9), (1, 8), (2, 7), (3, 6), (4, 5), (5, 4), (6, ..
使用lambda表达式给集合排序
list排序 在java8之前,给list排序需要使用实现java.util.Comparator接口的匿名类: List people = ... Collections.sort( people, new Comparator() { public int compare(Person p1, Person p2){ retu
java中使用sort()对ArrayList进行排序
java中的ArrayList需要通过collections类的sort方法来进行排序 如果想自定义排序方式则需要有类来实现Comparator接口并重写compare方法 调用sort方法时将ArrayList对象与实现Commparator接口的类的对象作为参数 举个例子: package book.arrayset; import java.util.Com
python sorted函数(结合使用lambda和operator.itemgetter()来对字典进行排序)
>>> mydict = { 'Li': ['M',7], ... 'Zhang': ['E',2], ... 'Wang': ['P',3], ... 'Du': ['C',2], ... 'Ma': ['C',9], ... 'Zhe': ['H',7] } >>> >>> from operator import itemgetter >>> sorted(mydict.it
使用sort 和自定义比较函数对任意成员变量排序
我在学习C++ STL部分时,一直在思考如何使用最简单的方法实现
Lambda实现排序
public class TestComparator { public static void main(String[] args) { List dateList = new ArrayList<>(); DateDTO dateDTO1 = new DateDTO(); dateDTO1.setDate(DateUtil.stringToDate("2018-01-27"
lambda函数是变成对集合进行排序的几种方式
lambda函数是变成对集合进行排序的几种方式
jdk8使用lambda表达式排序
jdk8使用lambda表达式排序示例代码:实现对整数排序package ouyf;import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List;public class LambdaTest { public static void main(
Lambda表达式之list分组排序
List&amp;lt;Paramer&amp;gt; afterList=paramerService.getList(); //group by categoryId Map&amp;lt;Integer, List&amp;lt;Paramer&amp;gt;&amp;gt; groupByCategoryIdAfterMap = afterList .stream() ...
list.sort方法和内置函数sorted
list.sort方法和内置函数sorted的异同 list.sort方法和sorted函数都是对列表进行排序的,但是这两种方法也是有少许不同的,list.sort排序是在原有基础上进行的,不会生成返回一个新的list, 但是sorted函数则不同,他会产生一个新对象并返回。如下 t = [1, 3, 4, 2, 5, 0] t1 = [1, 3, 4, 2, 5, 0] print(t.s...
Lambda表达式实现List集合的自定义排序
之前写code,实现List集合的自定义排序,都是给Collections.sort()传递一个实现Comparator的类对象,相对比较麻烦,终于决定迅速学习一下java8中的Lambda表达,昨天刚刚到手的书,只有132页,决定13天内必须看完。OK,我终于写了自己的第一个Lambda表达式,开心~ 1、测试code: import java.util.ArrayList; imp
Lambda表达式遍历Map,List;并且进行自然排序。
1.测试类 package io.renren.ceshi; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import java.util.Comparator; import java.util.List; import java.util.Map; /** * @autho...
Java 8 中List排序与Lambda表达式
    在 Java 类库中,有很多针对数组和 List 的排序方法,比如 Arrays.sort() 、Collections.sort() ,以及在 Java 8中 List 接口新加的默认方法 sort() 。而 sort 最主要的使用方式有两种,具体可以参考博客:Java中comparable 和 comparator    在本文中我们的重点放在 Comparator 的使用上面,因为通...
python中sort()方法自定义cmp PythonTip-最大正整数
cmp内建函数>>>L=[1,3,2] >>>L.sort() >>>L [1, 2, 3] #默认就是调用cmp内建函数 >>>L.sort(cmp) >>>L [1, 2, 3] 重定义比较函数def mycmp1(x,y): #升序排列 if x < y: return -1 elif x > y: return 1 else:
C# 中排序函数的总结
sort 函数对数组中的数据进行升序排序,,(其中,sort函数有很多重载的形式,这里不再一一的说明) Reverse函数对数组中的数据进行降序排序,, static void Main(string[] args) { // sort ,Reverse 排序的应用举例 int[] intArr = { 1,4,2
【转】【lambda】Java8函数之旅 (五) -- Java8中的排序
https://www.cnblogs.com/invoker-/p/7709411.html   前言    对数据进行排序是平常经常会用到的操作之一,使用Jav8排序可以减少你在排序这方面的代码量,优化你的代码。 测试用例代码 定义个实体类User,拥有姓名name,年龄age,积分credits三个属性,定义一个包含User的集合,用于排序,下面是代码 /* 这里偷个懒,用lo...
使用sorted对列表和字典 排序
1.对列表进行排序: 方法一:可以使用列表的sort函数list00=[2,1,4,2,1,4] #使用sort()进行排序,sort只能对list进行排序 list11=list00.sort() print type(list11) print list00 print list11输出: [1, 1, 2, 2, 4, 4] None 结果可知,list00排序后并没有将列表
【java】List元素排序Lambda表达式
List&amp;lt;Student&amp;gt; students = new ArrayList&amp;lt;&amp;gt;(); Student s1 = new Student(&quot;haha&quot;,12,&quot;女&quot;,2); Student s2 = new Student(&quot;xixi&quot;,13,&quot;女&quot;,4); Student s3 = new Student(&quot;guagua&quot;,14,&quot;女&amp
C++ sort排序函数用法
最近在刷ACM经常用到排序,以前老是写冒泡,可把冒泡带到OJ里后发现经常超时,所以本想用快排,可是很多学长推荐用sort函数,因为自己写的快排写不好真的没有sort快,所以毅然决然选择sort函数 用法 1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std; 2、它使用的排序方法是类似于快排的方法,时间复
C++ STL 自带排序sort()函数的用法
使用sort()函数,头文件#include&amp;lt;algorithm&amp;gt;.排序对象要求是容器vector。使用时你只需编写排序时的比较函数cmp即可。示例代码如下:#include&amp;lt;iostream&amp;gt; #include&amp;lt;vector&amp;gt; #include&amp;lt;algorithm&amp;gt; using namespace std; int cmp(int a,int b...
C# 中使用Linq和Lambda表达式对List<T>进行排序
C#中List排序的两种方法 List stu = (ListStudent>)Session["StudentList"]; Linq表达式: //按学号降序 ListStudent> stuList = (from s in stu  orderby s.stuNO descending select s).ToListStudent>(); /
STL中list容器中sort函数用法
首先,声明一下,由于list基础结构是链表,不能直接用下标【】来直接取某一元素。 1、当list 中类型是int或者string类型时,直接调用sort函数,即 void ListSortTest1() { list num; num.push_back("10_8"); num.push_back("10_3"); num.push_back("10_2"); num.push_
python 按照list中的dic的某key排序
python面试题之一:python 按照list中的dic的某key排序
Java List 排序方法sort的使用详解
对数组的排序: 1 2 3 4 5 6 7 8 //对数组排序 public void arraySort(){     int[] arr = {1,4,6,333,8,2};     Arrays.sort(arr);//使用java.util.Arrays对象的sort方法 ...
java8使用Lambda表达式比较器Comparator给List对象排序,按时间、数字、字典排序
简单的lambda给list对象排序示例 效果: 代码: package com.alexli.test; import com.alexli.codetemplate.util.DateUtil; import com.alexli.entity.Message; import java.util.ArrayList; import java.util.List; public clas...
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链导致显卡价格 学习人工智能的条件