专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例

使用Python处理txt汉字文字、二维列表排序和获取list下标

一. list二维数组排序

它和字符串不同之处在于:字符串只能由字符组成而且不可变的(不能单独改变它的某个值),而列表是能保留任意数目的Python对象灵活容器。
总之,列表可以包含不同类型的对象(包括用户自定义的对象)作为元素,列表可以添加或删除元素,也可以合并或拆分列表,包括insert、update、remove、sprt、reverse等操作。

列表排序介绍

【1】常用列表排序方法包括使用List内建函数list.sort()或序列类型函数sorted(list)排序
两种方法的区别:
list.sort() 不会返回对象,改变原有的list。
sorted(list)没有改变原有的list。返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。
举例:
1、正向:
list.sort()
print(list)
2、print sorted(list)
3、反向排序:L.sort(reverse=True)

二维列表排序,lambda匿名函数????

参考:http://blog.chinaunix.net/uid-20775448-id-4222915.html
【2】对第二个关键字进行排序。
list = [(‘Tom‘,4),(‘Jack‘,7),(‘Daly‘,9),(‘Mary‘,1),(‘God‘,5),(‘Yuri‘,3)]
方法1、list.sort(lambda x,y:cmp(x[1],y[1]))
方法2、list.sort(key=lambda x:x[1])
方法3、import operator
L.sort(key=operator.itemgetter(1))

总结:效率比较:
cmp < DSU < key
通过实验比较,方法1比方法2要慢,方法3和方法3基本相当
多关键字比较排序:

【3】多关键字比较排序:
想用第二个关键字排过序后再用第一个关键字进行排序呢?有两种方法
方法1、L.sort(key=lambda x:(x[1],x[0]))
方法2、L.sort(key=operator.itemgetter(1,0))

二. 处理txt文本

下面是通过txt文件按行读取,并获取面积进行排序。其中核心代码如下:
步骤:
读取文件&列表添加
列表排序
获取面积字符串
最后同时需要处理各种字符串情况,如‘或’、‘万’要乘10000、删除‘[1]’等。更简单的方法是通过正则表达式或获取第一个非数字字符。

原文地址:https://www.cnblogs.com/chenhuan123/p/12036776.html

时间: 2024-11-07 00:20:41

专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例的相关文章

C++基础知识——二维数组做函数参数

1.确定大小的二维数组 void Func(int array[3][10]); void Func(int array[][10]); 2.不确定大小的二维数组转为二维指针: 从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,所以可以转换成二维指针. void Func(int **array, int m, int n); 调用时候要把数组名转换位二维指针 Func((int**)a, 3, 3); 获取具体数组元素 *((int*)array + n

Powershell基础知识(二)

上一节主要介绍Powershell可发现,面向对象,一致性等特性,以及Powershell命令是基于.Net对象等重要概念,以及Powershell命令的命名规范,详细内容点击这里. 这一节的Powershell基础知识主要包含以下知识点 获取命令的摘要信息. 获取命令的帮助信息. 总结. 获取命令的摘要信息 Powershell命令 Get-Command 可检索当前shell中所有可用的命令名称.在Powershell提示符输入 Get-Command ,输出的内容类似以下内容(以下只写出输

php基础篇-二维数组排序 array_multisort

原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(array1,sorting order, sorting type,array2,array3..)是对多个数组或多维数组进行排序的函数. array1 必需.规定输入的数组. sorting order 可选.规定排列顺序.可能的值是 SORT_ASC 和 SORT_DESC. sorting t

php基础篇-二维数组排序姐妹篇

前面介绍了php多维数组排序的一个函数array_multisort() ,想了解的人可以点击 二维数组排序 array_multisort 下面介绍下不适用array_multisort()进行多维数组的排序. 这里介绍下2个php排序函数,一个是asort,一个是arsort. asort(array,sorttype) 函数对数组进行排序并保持索引关系.主要用于对那些单元顺序很重要的结合数组进行排序. 可选的第二个参数包含了附加的排序标识. SORT_REGULAR - 默认.以它们原来的

ASP.NET Core 2.2 基础知识(二) 中间件

原文:ASP.NET Core 2.2 基础知识(二) 中间件 中间件是一种装配到应用管道以处理请求和相应的软件.每个软件都可以: 1.选择是否将请求传递到管道中的下一个组件; 2.可在调用管道中的下一个组件前后执行工作. 管道由 IApplicationBuilder 创建: 每个委托都可以在下一个委托前后执行操作,.此外,委托还可以决定不将请求传递给下一个委托,这就是对请求管道进行短路.通常需要短路,是因为这样可以避免不必要的工作.比如: 1.静态文件中间件可以返回静态文件请求并使管道的其余

jQuery写省级联动列表,创造二维数组,以及如何存/调用二维数组中的数据

jQuery写省级联动列表,创造二维数组来存放数据,然后通过each来遍历调用,通过creatTxtNode创建文本节点,通过createElement创建标签option,在通过append将文本写入option,再通过appendTo将文本追加到id为city的市级列表中 代码如下: jquery部分: 1 <script src="js/jquery-1.8.3.js" type="text/javascript" charset="utf-8

JS:二维数组排序和获取子级元素

JS:二维数组排序和获取子级元素 1. 二维数组排序 1.按数值排序 1 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; 如果我们要按每个子数组的第一列来排序要如何做呢,我们可以定义一个比较函数: 1 arr.sort(function(x, y){ 2 return x[0] – y[0]; 3 }); 这里的比较函数的作用是什么呢?其实是数组依次将数组元素复制给x,y,比如首先将arr[0]赋给x,arr[1]赋给y,然后用x[0] – y[0],根

PHP二维数据排序,二维数据模糊查询

一.因为项目中的一个报表需要合并三个表的数据,所以分表查询再合并数据,利用PHP数组函数进行排序,搜索.三表合并后的数组结构如下: Array ( [0] => Array ( [history_id] => 12 [sla_group_id] => 1 [sla_id] => -1 [create_time] => 1513057695 [tasklog_id] => 12 [tasklog_time] => 2017-12-12 13:48:15 [taskl

Java基础知识(二)

1,字符串 new String("abc")创建了几个对象? 一个或两个,如果常量池中原来有"abc",则只创建一个对象:如果常量池中原来没有字符串"abc",那么就会创建两个对象. String s="abc"; String s1="ab"+"c"; System.out.println(s==s1); 输出 true ,因为"ab"+"c"