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 = " ...
随机推荐
- Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
- ip地址0.0.0.0与127.0.0.1的区别(转载)
原文链接:http://blog.csdn.net/ttx_laughing/article/details/58586907 最近在项目开发中发现一个奇怪的问题,当服务器与客户端在同一台机器上时,用 ...
- 【原】无脑操作:eclipse + maven搭建SSM框架
网上看到一些Spring + Spring MVC + MyBatis框架的搭建教程,不是很详细或是时间久远了,自己动手整一个简单无脑的! 0.系统环境 1)Windows 10 企业版 2)JDK ...
- 【LeetCode】89. Gray Code
题目: The gray code is a binary numeral system where two successive values differ in only one bit. Giv ...
- 经验之谈——gulp使用教程
gulp的最实用教程 使用gulp编译less.sass.压缩js等常用功能讲解 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多 ...
- Java多线程(二) —— 线程安全、线程同步、线程间通信(含面试题集)
一.线程安全 多个线程在执行同一段代码的时候,每次的执行结果和单线程执行的结果都是一样的,不存在执行结果的二义性,就可以称作是线程安全的. 讲到线程安全问题,其实是指多线程环境下对共享资源的访问可能会 ...
- LR监控Windows Server 2008 R2系统资源提示“指定的网络名不可用。”
问题现象: LR监控远程服务器Window Server 2008 R2 系统资源,提示“Monitor name :Windows Resources. Cannot connect to mach ...
- web前段学习2016.6.6
目前上网的方式:手机平板电脑移动端:智能手机.平板PC:电脑.笔记本运行在移动端的东西:APPios:object-candroid:javapc端的东西:桌面应用程序 c++ 我们上网的方式都是通过 ...
- VB6之GIF分解
原文链接:http://hi.baidu.com/coo_boi/item/1264a64172fe8dec1f19bc08 还是找了个C++的翻译下,原文链接:http://www.360doc.c ...
- PHP中的数据结构
PHP7以上才能安装和使用数据结构,安装比较简单: 1. 运行命令 pecl install ds 2. 在php.ini中添加 extension=ds.so 3. 重启PHP或重载配置 Coll ...