Python基础之列表常见操作经典实例详解

本文实例讲述了Python基础之列表常见操作。分享给大家供大家参考,具体如下:

Python中的列表操作

列表是Python中使用最频繁的数据类型【可以说没有之一】

一组有序项目的集合
可变的数据类型【可进行增删改查】
列表中可以包含任何数据类型,也可包含另一个列表【可任意组合嵌套】
列表是以方括号“ []”包围的数据集合,不同成员以“ ,”分隔
列表可通过序号访问其中成员

创建列表的方式
#创建一个含有元素1,2,4,8,16,32的列表
#方法1
L = [1, 2, 4, 8, 16, 32]
#方法2
L = []
for x in range(0, 6):
  L.append(2**x)
#方法3
L = [2**x for x in range(0, 6)]
列表操作包含以下函数:

1、cmp(list1, list2):比较两个列表的元素
2、len(list):列表元素个数
3、max(list):返回列表元素最大值
4、min(list):返回列表元素最小值
5、list(seq):将元组转换为列表

列表操作包含以下方法:

1、list.append(obj):在列表末尾添加新的对象
2、list.count(obj):统计某个元素在列表中出现的次数
3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置
5、list.insert(index, obj):将对象插入列表
6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7、list.remove(obj):移除列表中某个值的第一个匹配项
8、list.reverse():反向列表中元素
9、list.sort([func]):对原列表进行排序

1.增加元素

A.新加入一个元素append

append方法添加。它在原列表末尾添加一个 item, item类型可以是任意的

l = [1, 2, 3]
l.append('hello')  #得到 [1, 2, 3, 'hello']
l.append(['hello'])  #得到 [1, 2, 3, 'hello', ['hello']]

B.插入一个元素insert

l1 = [1, 2, 3]
l1.insert(1,9)  #[1, 9, 2, 3]

C.两个列表相加

#第一种
l1 = [1, 2, 3]
l3 = l1 + [4, 5, 6] #这种方式,l1不变,二者返回新的列表,当列表很长时,会消耗大量内存
#第二种
l1.extend([4, 5, 6]) #直接扩增l1
#相当于
l1 += [4,5,6]
2.删除元素

A.按item的索引或切片删除

l1 = [1, 2, 3, 4, 5, 6]
del l1[0]  #得到[2, 3, 4, 5, 6]
del l1[0:2] #得到[4, 5, 6]

B.按item的值进行删除

l1 = [1,2,3,1,2]
l1.remove(1) #得到[2,3,1,2]

若是remove对应值查无,将报ValueError

C.删除某个位置并返回该位置值

l1 = [1, 2, 3, 4, 5]
a = l1.pop(1)  #a=2
b = l1.pop()  #a=5
3.修改元素

A.某个元素

l1 = [1, 2, 3, 4]
l1[0] = 0  #[0,2,3,4]

B.某一段元素

l1= [1,2,3,4]
l1[0:2] = [7,8,9] #[7,8,9,3,4]

l1[:] = []  #清空了

C.索引

l1 = [1,2,3,4,5]
l1[0] #1
l1[-1] #5,负数的索引从尾部开始计数,最后一个元素为-1

D.切片

l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
l1[0:2]  #[1, 2],  取区间[i,j) ,左闭右开
l1[:2]   #同上,可省略第一位
l1[2:]   #[3, 4, 5, 6, 7, 8, 9, 10, 11]
l1[2:-1]  #[3, 4, 5, 6, 7, 8, 9, 10]
l1[:]    #同l1,相当于复制一份

l1[::2]  #步长2,[1, 3, 5, 7, 9, 11]
l1[0:7:2] #[1, 3, 5, 7]
l1[7:0:-2] #[8, 6, 4, 2]  注意步长为负、理解起来相当于从7到1,倒序步长2
4.排序

A.原地排list.sort()

l1 = [5,3,2,1,4,6]
l1.sort()  #得到[1,2,3,4,5,6]  默认升序

sort可接受参数

cmp,比较函数,接受两个参数,小于时返回负,大于返回正,相等返回0
key,指定排序键
reverse,指定是否反序

列表的比较操作 , 隐式调用cmp 方法 , 比较规则是逐个扫描元素 , 进行比较, 如果可以比较 , 比较, 如果相等扫描下一个元素 , 如果不相等返回结果 , 如果两个元素类型不可以比较 , 就比较两个对象的 id()值 .. 如果一直相等 ,直到一个列表扫描结束 , 那么返回较长的列表较大

>>> l1 = [(1,99),(3,97),(2,98),(4,96)]
>>> l1.sort(key=lambda x: x[1])
>>> l1
[(4, 96), (3, 97), (2, 98), (1, 99)]
>>> l1.sort(key=lambda x: x[1], reverse=True)
>>> l1
[(1, 99), (2, 98), (3, 97), (4, 96)]

B.sorted函数
sorted(l1) #返回l1的有序序列,l1不变

sorted(l,key=str.lower,reverse=True)

C.反序

l1.reverse() #l1反序
5.查找和统计

A.包含判断in ,not in

l1 = [1, 2, 3, 4]
1 in l1 #True
1 not in l1 #False

B.查询位置索引index

l1 = [1, 2, 3, 4]
l1.index(1)  #0
>>> l1.index(5)  #特别注意,当值不存在于列表,用index将抛ValueError

Traceback (most recent call last):
 File "<pyshell#44>", line 1, in <module>
  l1.index(5)
ValueError: 5 is not in list

C.统计一个元素的出现次数

l1 = [1, 2, 3, 4, 1]
l1.count(1)  #2
6.遍历列表

A.直接

l1 = [1, 2, 3, 4, 5]
for i in l1:
   print (i)

B.需要索引位置

l1 = [1, 2, 3, 4, 5]
for index,value in enumerate(l1):
   print (index,value)

C.其他操作

len(l)  #列表长度
l*3 重复
l1 = [1, 2]
l1*3  #[1,2,1,2,1,2]

D.清空列表

l1 = []
l1[:] = []
del l1[:]

E.复制列表

l2 = l1[:]

注意:在操作list时,如果是涉及原地修改的操作,例如append,insert等,返回值是None 要防止出现这种语法 l1 = l1.append(‘a') ,如果这样,你将得到None…….

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • python列表切片和嵌套列表取值操作详解

    给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中,-1表示list最后一个元素 首先来看最简单的单一列表: a = [1,2,3,4] a[:] a[::] a[:3] a[1:3:2] a[3] 输出依次为: [1,2,3,4] [1,2,3,4] [1,2,3] [2] 4 注意,这里只有最后一个输出是不带[]的,表明只有最后一个输出是元素,其他在切片中只用了:符号的输出均为list,不

  • Python 中的range(),以及列表切片方法

    range()函数配合循环一块使用很方便,今天来整理一下这个函数的主要用法,以及几个小例子 首先来看一下函数原型,非常简单: range(start,end [,step]) 或者连start都省略掉: range(end) 其中,start表示开始点,end表示结束点,真正结束的位置是end的前一个值,step表示步长. 例如: print(list(range(1,5))) #list函数是将range的值列表化,这时候的输出为 1,2,3,4 (没有5!即不包括最后一个end的值) pri

  • Python列表解析操作实例总结

    本文实例讲述了Python列表解析操作.分享给大家供大家参考,具体如下: 列表解析 Python 的强大特性之一是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list. 列表解析,又叫列表推导式( list comprehension) 列表解析比 for 更精简,运行更快,特别是对于较大的数据集合 列表解析可以替代绝大多数需要用到 map和 filter的场合 列表推导式提供了一个创建链表的简单途径,无需使用

  • Python列表的切片实例讲解

    之前讲过python列表的基本操作,我们今天继续讲解列表中的切片等操作,列表的切片就是根据索引取列表中的数据,切片并不会改变原列表.接下来跟着小编一起学习python列表的其他操作吧. 如下所示的列表test,我们截取test[1:3]的元素,因为下标从0开始,因此截取第1个和第二个数据,是不包括结尾的,默认的步长是1,我们还可以看到列表的分片操作实际上不影响原列表. 如果取test[:3]则表示下标从0开始取,相当于test[0:3]:如果取test[1:]则表示切片从索引1一直取到末尾:如果

  • Python基础之列表常见操作经典实例详解

    本文实例讲述了Python基础之列表常见操作.分享给大家供大家参考,具体如下: Python中的列表操作 列表是Python中使用最频繁的数据类型[可以说没有之一] 一组有序项目的集合 可变的数据类型[可进行增删改查] 列表中可以包含任何数据类型,也可包含另一个列表[可任意组合嵌套] 列表是以方括号" []"包围的数据集合,不同成员以" ,"分隔 列表可通过序号访问其中成员 创建列表的方式 #创建一个含有元素1,2,4,8,16,32的列表 #方法1 L = [1,

  • Python基础之字典常见操作经典实例详解

    本文实例讲述了Python基础之字典常见操作.分享给大家供大家参考,具体如下: Python字典 Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何优雅的操作字典. 创建字典 Python有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建 函数dict >>> info = {} >>> info = dict() 初始化字典 Python可以在创建字典的时候初始化字典 >>> info = {"name

  • Python基础之字符串常见操作经典实例详解

    本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 end-1 的元素,切取的区间为 [beg, end) str = ' python str ' print (str[3:6]) # tho # str[beg:end:step] # 取 [beg, end) 之间的元素,每隔 step 个取一个 print (str[2:7:2]) # yhn 原

  • Python基础教程之浅拷贝和深拷贝实例详解

    Python基础教程之浅拷贝和深拷贝实例详解            网上关于Python的深拷贝和浅拷贝的文章很多,这里对三种拷贝进行比较并附实例,大家可以参考下 一般的复制 #encoding:utf-8 #定义一个嵌套集合 lista=[1,2,3,[4,5,6,[7,8,9]]] listb=lista #分别打印出 lista和listb的地址值 print id(lista) #4511103096 print id(listb) #4511103096 #修改lista中的内容,li

  • Python字符串和字典相关操作的实例详解

    Python字符串和字典相关操作的实例详解 字符串操作: 字符串的 % 格式化操作: str = "Hello,%s.%s enough for ya ?" values = ('world','hot') print str % values 输出结果: Hello,world.hot enough for ya ? 模板字符串: #coding=utf-8 from string import Template ## 单个变量替换 s1 = Template('$x, glorio

  • Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所以我们应该遵循开放封闭的原则. 也就是说:我们必须找到一种解决方案,能够在不修改一个功能源代码以及调用方式的前提下,为其加上新功能. 总结:原则如下: 1.不修改源代码 2.不修改调用方式 目的:在遵循1和2原则的基础上扩展新功能. 二.什么是装饰器? 器:指的是工具, 装饰:指的是为被装饰对象添加

  • Python基础之函数原理与应用实例详解

    本文实例讲述了Python基础之函数原理与应用.分享给大家供大家参考,具体如下: 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用 函数的使用包含两个步骤: 定义函数 -- 封装 独立的功能 调用函数 -- 享受 封装 的成果 函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用 演练步骤 新建 04_函数 项目

  • Python3.5文件读与写操作经典实例详解

    本文实例讲述了Python3.5文件读与写操作.分享给大家供大家参考,具体如下: 1.文件操作的基本流程: (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 2.基本操作举例: 现有一个命名为song.txt的文件,里面存放最喜爱的英文歌,内容如下: take me to your heart hiding from the rain and snow 藏身于雨雪之中 trying to forget but i won't let go 努力忘记,但我

  • 基于python操作ES实例详解

    这篇文章主要介绍了基于python操作ES实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装 pip install elasticsearch5 # 安装对应版本的模块 创建ES对象 from elasticsearch5 import Elasticsearch # elasticsearch集群服务器的地址 ES = [ '127.0.0.1:9200' ] # 创建elasticsearch客户端 es = Elasticse

  • python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现. 在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的. 在mac中可以通过easy_install xlrd命令实现自动安装模块 import xdrlib ,sys import xlrd def open_excel(fil

随机推荐