python 中 list 的各项操作
最近在学习 python 语言。大致学习了 python 的基础语法。觉得 python 在数据处理中的地位和它的 list 操作密不可分。
特学习了相关的基础操作并在这里做下笔记。
- '''
- Python --version Python 2.7.11
- Quote : https://docs.python.org/2/tutorial/datastructures.html#more-on-lists
- Add by camel97 2017-04
- '''
list.append(x) #在列表的末端添加一个新的元素-
Add an item to the end of the list; equivalent to
a[len(a):] = [x].
list.extend(L)#将两个 list 中的元素合并到一起-
Extend the list by appending all the items in the given list; equivalent to
a[len(a):] = L.
list.insert(i, x)#将元素插入到指定的位置(位置为索引为 i 的元素的前面一个)-
Insert an item at a given position. The first argument is the index of the element before which to insert, so
a.insert(0, x)inserts at the front of the list, anda.insert(len(a), x)is equivalent toa.append(x).
list.remove(x)#删除 list 中第一个值为 x 的元素(即如果 list 中有两个 x , 只会删除第一个 x )-
Remove the first item from the list whose value is x. It is an error if there is no such item.
list.pop([i])#删除 list 中的第 i 个元素并且返回这个元素。如果不给参数 i ,将默认删除 list 中最后一个元素-
Remove the item at the given position in the list, and return it. If no index is specified,
a.pop()removes and returns the last item in the list. (The square brackets around the i in the method signature denote that the parameter is optional, not that you should type square brackets at that position. You will see this notation frequently in the Python Library Reference.)
list.index(x)#返回 list 中 , 值为 X 的元素的索引- Return the index in the list of the first item whose value is x. It is an error if there is no such item.
list.count(x)#返回 list 中 , 值为 x 的元素的个数-
Return the number of times x appears in the list.
demo:
1 #-*-coding:utf-8-*-
2 L = [1,2,3] #创建 list
3 L2 = [4,5,6]
4
5 print L
6 L.append(6) #添加
7 print L
8 L.extend(L2) #合并
9 print L
10 L.insert(0,0) #插入
11 print L
12 L.remove(6) #删除
13 print L
14 L.pop() #删除
15 print L
16 print L.index(2)#索引
17 print L.count(2)#计数
18 L.reverse() #倒序
19 print Lresult:
[1, 2, 3]
[1, 2, 3, 6]
[1, 2, 3, 6, 4, 5, 6]
[0, 1, 2, 3, 6, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5]
2
1
[5, 4, 3, 2, 1, 0]list.sort(cmp=None, key=None, reverse=False)Sort the items of the list in place (the arguments can be used for sort customization, see sorted() for their explanation).
1.对一个 list 进行排序。默认按照从小到大的顺序排序
L = [2,5,3,7,1]
L.sort()
print L ==>[1, 2, 3, 5, 7] L = ['a','j','g','b']
L.sort()
print L ==>['a', 'b', 'g', 'j']2.reverse 是一个 bool 值. 默认为 False , 如果把它设置为
True, 那么这个 list 中的元素将会被按照相反的比较结果(倒序)排列.# reverse is a boolean value. If set to
True, then the list elements are sorted as if each comparison were reversed.L = [2,5,3,7,1]
L.sort(reverse = True)
print L ==>[7, 5, 3, 2, 1] L = ['a','j','g','b']
L.sort(reverse = True)
print L ==>['j', 'g', 'b', 'a']3.key 是一个函数 , 它指定了排序的关键字 , 通常是一个 lambda 表达式 或者 是一个指定的函数
#key specifies a function of one argument that is used to extract a comparison key from each list element:
key=str.lower. The default value isNone(compare the elements directly).#-*-coding:utf-8-*-
#创建一个包含 tuple 的 list 其中tuple 中的三个元素代表名字 , 身高 , 年龄
students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
print students ==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)] students.sort(key = lambda student:student[0])
print students ==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)]#按名字(首字母)排序 students.sort(key = lambda student:student[1])
print students ==>[('Tom', 160, 12), ('John', 170, 15), ('Dave', 180, 10)]#按身高排序 students.sort(key = lambda student:student[2])
print students ==>[('Dave', 180, 10), ('Tom', 160, 12), ('John', 170, 15)]#按年龄排序4.cmp 是一个指定了两个参数的函数。它决定了排序的方法。
#cmp specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first #argument is considered smaller than, equal to, or larger than the second argument:
cmp=lambda x,y: cmp(x.lower(), y.lower()). The default value isNone.#-*-coding:utf-8-*-
students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
print students ==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)] #指定 用第一个字母的大写(ascii码)和第二个字母的小写(ascii码)比较
students.sort(cmp=lambda x,y: cmp(x.upper(), y.lower()),key = lambda student:student[0])
print students ==>[('Dave', 180, 10), ('Tom', 160, 12), ('John', 170, 15)] #指定 比较两个字母的小写的 ascii 码值
students.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()),key = lambda student:student[0])
print students ==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)] #cmp(x,y) 是python内建立函数,用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1cmp 可以让用户自定义大小关系。平时我们认为 1 < 2 , 认为 a < b。
现在我们可以自定义函数,通过自定义大小关系(例如 2 < a < 1 < b) 来对 list 进行指定规则的排序。
当我们在处理某些特殊问题时,这往往很有用。
如果以上的叙述有误。欢迎大家批评指正。
python 中 list 的各项操作的更多相关文章
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
- 在Python中使用lambda高效操作列表的教程
在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- python中mysql数据库的操作-sqlalchemy
MySQLdb支持python2.*,不支持3.* ,python3里面使用PyMySQL模块代替 python3里面如果有报错 django.core.exceptions.ImproperlyC ...
- python 历险记(四)— python 中常用的 json 操作
目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...
- python 中文件夹的操作
文件有两个管家属性:路径和文件名. 路径指明了文件在磁盘的位置,文件名原点的后面部分称为扩展名(后缀),它指明了文件的类型. 一:文件夹操作 Python中os 模块可以处理文件夹 1,当前工作目录 ...
- Python中字典的相关操作
1. Python类似于Java中的哈希表,只是两种语言表示的方式是不一样的,Python中的字典定义如下: 在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种 ...
- Python中文件路径名的操作
1 文件路径名操作 对于文件路径名的操作在编程中是必不可少的,比如说,有时候要列举一个路径下的文件,那么首先就要获取一个路径,再就是路径名的一个拼接问题,通过字符串的拼接就可以得到一个路径名.Pyth ...
- 超详细!盘点Python中字符串的常用操作
在Python中字符串的表达方式有四种 一对单引号 一对双引号 一对三个单引号 一对三个双引号 a = 'abc' b= "abc" c = '''abc''' d = " ...
随机推荐
- 从String类型字符串的比较到StringBuffer和StringBuilder
1. String类型 String类源码 为了从本质上理解String类型的特性所在,我们从String类型的源码看起,在源码中String类的注释中存在以下: /**Strings are con ...
- Java垃圾回收总结
基本概念 垃圾回收器(Garbage Collector )是JVM非常重要的一个组成部分,主要用于自动化的内存管理.相比手动的内存管理,自动化的内存管理大大简化了程序员的开发难度并且更加安全,避免了 ...
- WindowManager.LayoutParams的探究
上次在子线程更新UI时用了一下WindowManager.LayoutParams,当时觉得不太顺手.以前都是用空参构造器,这次用了type和flag属性,出现了意想不到的效果.也看看源码吧,多锻炼锻 ...
- 机器学习之分类问题实战(基于UCI Bank Marketing Dataset)
导读: 分类问题是机器学习应用中的常见问题,而二分类问题是其中的典型,例如垃圾邮件的识别.本文基于UCI机器学习数据库中的银行营销数据集,从对数据集进行探索,数据预处理和特征工程,到学习模型的评估与选 ...
- 处理浏览器兼容 各个浏览器的标识 hack
Firefox 浏览器 @-moz-document url-prefix() { .selector { property: value; } } 支持所有Gecko内核的浏览器 (包括Firefo ...
- WdatePicker文本框显示当前日期和时间限制<My97DatePicker两个日期范围不超过30天,第一个小于第二个,都不大于当前日期 >
My97DatePicker是很不错的一个日期选择插件,体积只有几十k但是功能非常强大.官网:http://www.my97.net/ 能满足很多苛刻的要求. WdatePicker文本框显示当前日期 ...
- 【Python3之多进程】
一.进程和线程的简单解释 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 用生活举例: (转自阮一峰网络日志) 1.计算机的核心是CPU,它承担了所有 ...
- Perl初试
通过接口发送短信的socket小样: #!/usr/bin/perl -w # auth:lichmama@cnblogs.com # what:send message to phone # usa ...
- vim中常用基本命令
一般模式可用命令,含光标移动.复制粘贴.查找替换等功能 Ctrl+f:屏幕向下移动一页,相当Page Down按钮 Ctrl+b:屏幕向上移动一页,相当Page Up按钮 0或Home键:移动到行首 ...
- Eclipse 迁移到Android studio
步骤: 1.安装 android-studio-bundle-143.2915827-windows https://developer.android.com/studio/install.html ...