码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-12-13 19:46:25      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:ted   key   删除元素   效率   介绍   序列   lis   eve   容器   

使用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]’等。更简单的方法是通过正则表达式或获取第一个非数字字符。

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

标签:ted   key   删除元素   效率   介绍   序列   lis   eve   容器   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!