列表的介绍

一、什么是列表

列表是可以存储不同类型数据的有序、可变的存储容器。

二、列表的格式

定义列的格式: [元素1,元素2,元素3,...,元素n]

定义变量名为arr的列表

arr=[1,'你好',hello,[1,2,3],[3,2,1.1]]

列表中的元素类型可以不同

列表中可以存列表

列表的下标从o开始

三、获取列表下标

# 列表

arr = [1, 2, 3, 4]

print(arr) #[1, 2, 3, 4]

print(type(arr)) #

newarr=arr[1:5]

print(arr[1]) # 1

print(newarr) #[2, 3, 4]

列表的增删改查

一、添加元素

append

把新元素添加到列表末尾

# append

arr = ['1', 2, 3]

print("append前的arr:", arr)

arr.append(4)

print("append后的arr:", arr)

结果为

append前的arr: ['1', 2, 3]

append后的arr: ['1', 2, 3, 4]

insert

insert(index, object) 在指定位置index前插入元素object

# insert

inArr = [1, 2, 3]

inArr.insert(1, 'tt')

print(inArr) # [1, 'tt', 2, 3]

extend

通过extend可以将另一个集合中的元素(可迭代的对象)逐一添加到列表中

# extend

exArr = ['詹姆斯', '杜兰特', '戴维斯']

# 添加一个元组tuple

exArr.extend(('库里', '哈登')) # ['詹姆斯', '杜兰特', '戴维斯', '库里', '哈登']

print(exArr)

# 添加一个字符串

exArr.extend('你好')

print(exArr) # ['詹姆斯', '杜兰特', '戴维斯', '库里', '哈登', '你', '好']

# 添加一个列表

exArr.extend([1, 2, 3])

print(exArr) # ['詹姆斯', '杜兰特', '戴维斯', '库里', '哈登', '你', '好', 1, 2, 3]

二、修改元素

通过指定下标来访问列表元素,因此修改元素的时候,为指定的列表下标赋值即可。

#定义变量A,默认有3个元素

A = ['xiaoWang','xiaoZhang','xiaoHua']

print("-----修改之前,列表A的数据-----A=%s" % A)

#修改元素

A[1] = 'xiaoLu'

print("-----修改之后,列表A的数据-----A=%s" % A)

三、删除元素

列表元素的常用删除方法有:

del:根据下标进行删除

# del删除

arr = ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

# 删除前

print(arr) # ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

# 删除后

del arr[2]

print(arr) # ['李青', '艾克', '赵信', '酒桶', '男枪']

pop:删除最后一个元素

# pop删除

pArr = ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

# 删除前

print(pArr) # ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

# 删除后

pArr.pop(3)

print(pArr) # ['李青', '艾克', '蔚', '酒桶', '男枪']

remove:根据元素的值进行删除

# remove删除:根据元素的值进行删除

rArr = ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

# 删除前

print(rArr) # ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

# 删除后

rArr.remove('男枪')

print(rArr) # ['李青', '艾克', '蔚', '赵信', '酒桶']

查找的元素

in与not in

index和count

in, not in

python中查找的常用方法为:

in(存在),如果存在那么结果为true,否则为false

not in(不存在),如果不存在那么结果为true,否则false

#待查找的列表

nameList = ['xiaoWang','xiaoZhang','xiaoHua']

#获取用户要查找的名字

findName = input('请输入要查找的姓名:')

#查找是否存在

if findName in nameList:

print('在列表中找到了相同的名字')

else:

print('没有找到')

说明:

in的方法只要会用了,那么not in也是同样的用法,只不过not in判断的是不存在

index

index(value,start,step) start开始索引,step结束索引,两个连用如两个区间没查到值报错。左开右闭区间,取到step索引之前的索引。

# index

inArr = ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

in1 = inArr.index('赵信')

print('索引为:', in1) # 索引为: 3

inArr2 = [1, 2, 3, 4, 5, 1, 3]

in2 = inArr2.index(3, 4)

print('索引为:', in2) # 索引为: 6

in3 = inArr2.index(1, 3, 6)

print('索引为:', in3) # 索引为: 5

count

用来计算某个元素出现的次数,未出现则为零

# count

countArr = [1, 2, 3, 4, 5, 3]

c1 = countArr.count(1)

print('个数为:', c1) # 个数为: 1

# 未有的元素

c2 = countArr.count(99)

print('个数为:', c2) # 个数为: 0

# 出现多次的元素

c3 = countArr.count(3)

print('个数为:', c3) # 个数为: 2

列表的遍历

使用while循环

为了更有效率的输出列表的每个数据,可以使用循环来完成

heroList = ['李青', '艾克', '蔚', '赵信', '酒桶', '男枪']

# 获取长度

length = len(heroList)

i = 0

while i < length:

print('英雄:', heroList[i])

i += 1

# 结果为

"""

英雄: 李青

英雄: 艾克

英雄: 蔚

英雄: 赵信

英雄: 酒桶

英雄: 男枪

"""

使用for循环

while 循环是一种基本的遍历列表数据的方式,但是最常用也是最简单的方式是使用 for 循环

for i in heroList: #herolist是可迭代对象

print('英雄:', i)

# 结果上同

列表的嵌套

类似while循环的嵌套,列表也是支持嵌套的

一个列表中的元素又是一个列表,那么这就是列表的嵌套

# 列表的嵌套

list = [1, 2, 3, [3, 2, 1], [1, 2, 3]]

print(list) # [1, 2, 3, [3, 2, 1], [1, 2, 3]]

# 操作列表的索引获得元素

print(list[3]) # [3, 2, 1]

# 操作列表的索引获得元素,再次操作索引或得深成索引

print(list[3][2]) # 1

列表的推导式

所谓的列表推导式,就是指的轻量级循环创建列表

# 列表推导式

# 基本方式

a = [x for x in range(4)]

print(a) # [0, 1, 2, 3]

b = [x for x in range(1, 9)]

print(b)

# [1, 2, 3, 4, 5, 6, 7, 8]

# 在循环的过程中使用if

c = [x for x in range(20) if x % 2 != 0]

print(c)

# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

# 2个for循环

t2 = [(x, y) for x in range(1, 4) for y in range(1, 4)]

print(t2)

# [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]

# 3个for循环

t3 = [(x, y, z) for x in range(1, 3) for y in range(1, 3) for z in range(1, 3)]

print(t3)

# [(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)]

列表的拷贝

列表的拷贝,即列表的复制

可分为:

浅拷贝:

1. 列表的copy方法

2. copy模块的使用

3. 切片

深拷贝:

浅拷贝

浅拷贝是对于一个对象的顶层拷贝,通俗的理解是:拷贝了引用,并没有拷贝内容。

列表的copy方法

使用列表的copy方法,可以直接将原来的列表进行复制,变成一个新的列表,这种复制方式是浅复制。

# 列表的copy方法

cp = [1, 2, 3, [3, 2, 1], [1, 2, 3]]

cp1 = cp.copy()

# 修改cp1

cp1[1] = 22

cp1[3][1] = 22

# 修改或拷贝后的列表

print(cp) # [1, 2, 3, [3, 22, 1], [1, 2, 3]]

print(cp1) # [1, 22, 3, [3, 22, 1], [1, 2, 3]]

copy模块的使用

除了使用列表的copy方法以外,Python还提供了copy模块来复制一个对象。copy模块提供了浅复制和深复制两种方式,它们的使用方式相同,但是执行的效果有一定的差异。

# copy模块的使用

import copy # 导入copy模块

cy = [1, 2, 3, [3, 2, 1], [1, 2, 3]]

# 调用模块中的copy方法

cy1 = copy.copy(cy)

# 修改cy1

cy1[1] = 22

cy1[3][1] = 22

# 修改或拷贝后的列表

print(cy) # [1, 2, 3, [3, 22, 1], [1, 2, 3]]

print(cy1) # [1, 22, 3, [3, 22, 1], [1, 2, 3]]

切片

列表和字符串一样,也支持切片,切片其实就是一种浅拷贝。

# 切片的浅拷贝

ct = [1, 2, 3, [3, 2, 1], [1, 2, 3]]

ct1 = ct[::]

# 修改ct1

ct1[1] = 22

ct1[3][1] = 22

# 修改或拷贝后的列表

print(ct) # [1, 2, 3, [3, 22, 1], [1, 2, 3]]

print(ct1) # [1, 22, 3, [3, 22, 1], [1, 2, 3]]

深拷贝

深拷贝是对于一个对象所有层次的递归拷贝。

# 深拷贝

dpcopy = [1, 2, 3, [3, 2, 1], [1, 2, 3]]

# 调用copy模块的deepcopy方法

deepcopy = copy.deepcopy(dpcopy)

# 修改ct1

deepcopy[1] = 22

deepcopy[3][1] = 22

# 修改或拷贝后的列表,对copy前的列表没有影响

print(dpcopy) # [1, 2, 3, [3, 2, 1], [1, 2, 3]]

print(deepcopy) # [1, 22, 3, [3, 22, 1], [1, 2, 3]]

python列表增删改查_Python列表List增删改查、拷贝相关推荐

  1. python列表定义和操作_Python 列表的定义及操作

    #列表概念:有序的可变的元素集合 #定义#直接定义 nums = [1,2,3,4,5]#通过range函数构造,python2 和python3 版本之间的差异:#python3 用的时候才会去构造 ...

  2. python列表字典元祖_python列表,字典,元组常用方法和集合

    python 一.列表 列表格式 变量=[元素1,元素2,元素3......] 1.添加 列表取数(按照下标取,下标从0开始) 获取长度 append添加(直接添加) extend添加(分别添加) i ...

  3. python中append的用法_Python 列表 append() 使用方法及示例

    Python 列表 append() 使用方法及示例 append()方法将一个项目添加到列表的末尾. append()方法将单个项目添加到列表的末尾. append()方法的语法为:list.app ...

  4. python列表的实现原理_Python列表对象实现原理

    Python 列表对象实现原理 Python 中的列表基于 PyListObject 实现,列表支持元 素的插入.删除.更新操作,因此 PyListObject 是一个变长 对象(列表的长度随着元素的 ...

  5. python列表操作函数大全_Python列表操作函数

    列表可以进行多个数据的存储,同时python中的列表设计非常到位,它可以实现内容动态扩充,可以进行后期数据的删除,这些就需要通过Python提供的列表操作函数来实现了. 对于Python语言而言,开发 ...

  6. python列表解析式如何使用_python列表推导式操作解析

    python列表推导式操作解析 这篇文章主要介绍了python列表推导式操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本格式 ​[表达式 ...

  7. python列表的实现原理_python列表推导式原理和使用方法

    偶尔会在python中看见这样一行代码: data = [x**2 for x in range(0, 5)] # 此时data = [0, 1, 4, 9, 16] 如果不知道背后的语法规则,那么很 ...

  8. python列表解析式如何使用_python列表解析式,生成器,及部分内建函数使用方法...

    标准库datetime 需要导入datetime模块: import datetime datetime模块: 对日期,时间,时间戳的处理 datetime的类方法 today  () now(tz= ...

  9. python列表有哪些操作_python列表的基本操作有哪些

    python列表的基本操作有:1.创建列表,只要把逗号分隔的不同的数据项使用方括号括起来:2.添加新的元素:3.遍历列表:4.访问列表中的值:5.从list删除元素. 相关免费学习推荐:python教 ...

最新文章

  1. 2007.04.26
  2. HDU-6290_奢侈的旅行(Dijstra+堆优化)
  3. .NET静态类的概念
  4. 科幻电影系列-计算机技术
  5. 使用JPA和Hibernate有效删除数据
  6. shiro 认证思路
  7. php 快速排序函数,PHP实现快速排序算法的三种方法
  8. c语言输出七个换行6,多样例输出,如何去掉最后一个回车
  9. 简述环状引用问题及其解决方案
  10. C/C++正则表达式匹配数字范围/小数点后几位
  11. matlab shift 详解,MeanShift算法详解以及matlab源码
  12. c语言解决约瑟夫问题,C语言解决约瑟夫问题详解的代码
  13. 一流程序员靠数学,二流程序员靠算法,低端看高端就是黑魔法!网友:我是七流靠复制
  14. REST-assured接口测试框架详解
  15. 使用DistrbutedDataParallel时,nvdiai-smi显示每个进程都占用GPU:0
  16. 我的世界服务器防挂机系统指令,我的世界反作弊和防飞行指令分享
  17. 在vue项目中使用高德地图JS API
  18. ubuntu14.04安装谷歌输入法
  19. Hbase的JavaAPI
  20. Quartus-II 13 安装

热门文章

  1. 初试交易第二期|交易基础——基本面分析
  2. centos 系列设置开机命令行模式启动
  3. C++语言基础:类和对象
  4. 机器学习 - 什么是机器学习
  5. 计算机学院运动会宣传语,运动会宣传语(精选70条)
  6. 研发项目如何做好工时管理?5种方法6大工具
  7. 【2020大数据应用赛试题】Spark分析处理
  8. 快速阶乘算法python_形容速度快的词语
  9. Android的ViewBinding
  10. 枫之谷虚拟机登不进去怎么办 新枫之谷无法登入怎么办,登入问题解决办法汇总