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

https://blog.csdn.net/Eastmount/article/details/48470577

这篇文章主要简单的介绍使用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