当前位置: 首页 > article >正文

从0开始学Python-day5

Python列表(list)

Python 支持多种复合数据类型,可将不同值(类型不同,数值不同)组合在一起。最常用的列表 ,是用方括号标注,逗号分隔的一组值。列表可以包含不同类型的元素,但一般情况下,各个元素的类型相同

列表是一种复合数据容器

list1 = ['openAI', 'hqyj', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

1、访问列表中的值

1.1 索引

与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。

列表的索引(下标,index)不能超出索引范围(越界)(正负都不行)

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
x=[1,2,31,43,45]
for i in range(len(x)):#range表示的是数列这个数据容器
    print(i,x[i])
   
for el in x:
    print(el,'1111')

1.2 反向索引

索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )

1.3 切片索引

使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符

注意:切片是深拷贝操作,变量直接赋值是浅拷贝操作

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])
list = ['openAI', 'hqyj', "Zhihu", "Taobao", "Wiki"] 
# 读取第二位
print (list[1])
# 从第二位开始(包含)截取到倒数第二位(不包含)
print (list[1:-2])
# 从下标2开始(包含2)到最后一个
print (list[2:])
# 从下标0开始到下标3结束(左闭右开)
print (list[:3])
x=[20,30,40,50,60,70,80,90]
x2=x[3:5]#x2表示从x列表中截取一个片段 得到一个新的列表 [3,5)
print("x2",x2)
x3=x[2:-2]#[2,-2) 从左往右取数据 从2对应的元素开始取值 一直取到-2对应的元素
print("x3:",x3)
x4=x[-3:4]#从左往右取数据,如果切片的范围没能取到任何元素,就会得到一个空的列表(不会报错)
print("x4:",x4)
x5=x[1:100]
print("x5:",x5)
x6=x[60:100]#超过了不会报错
print("x6:",x6)
x7=x[:4]#省略冒号前面的 就表示从0开始
print(x7)
x8=x[4:]#省略冒号前面的 就表示到len()结束
print(x8)
x9=x[:-1]#不取最后一个元素
print(x9)
x9=x[-1:]#取最后一个
print(x9)
x10=x[1:6:2]#[x[1],x[3],x[5]]
print("x10:",x10)
x11=x[1:6:1]#[x[1],x[2],x[3],x[4],x[5]]
print('x11:',x11)
x12=x[:8:2]#0 2 4 6
print('x12:',x12)
x13=x[2::2]#2 4 6 8,从2下标开始取数据,步长2 一直取到结束
print('x13:',x13)
x13=x[::]#全取
x13=x[:]#全取
x16=x[::-2]
x17=x[1:5:-1]#不行 ,步长达不到0,取的为空
x17=x[5:1:-1]#可以
#步长填负数的,前面一般不取
#把一个列表反转
#[::-1]

2、更新列表

对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项

list = ['openAI', 'hqyj', 1997, 2000]
print (list[2])
list[2] = 2001
print (list[2])
list1 = ['openAI', 'hqyj', 'Taobao']
list1.append('Baidu')
print (list1)
x=[10,20,30,40,50]
print(x[0])
x[0]=100#通过下标修改列表中的数据
print(x)
print(x[0])
#添加元素到列表的末尾
x.append(60)#只能给一个数据
print(x)
#更新切片 会修改原列表(深拷贝)
x=[10,20,30,40,50,60]
x2=x[2:5]
print("x:",x)
print("x2:",x2)
print(id(x),id(x2))#x和x2不是同一个id
print(id(100),id(100))
x2[0]=300
print("x2的下标0对应的元素被修改后",x2)
print("x2的下标0对应的元素被修改后",x)
#深拷贝和浅拷贝
#浅拷贝-共用一个内存
x=[10,20,30]
x2=x
x2[0]=100
print(x)
print(x2)
print(id(x),id(x2))
#深拷贝-两个数据一样,但是是两个内存空间
x=[100,200,300]
x2=[x[0],x[1],x[2]]
print(x)
print(x2)
x2[0]=999
print(x)
print(x2)
x=[100,200,300]
x2=[x[0],x[1],x[2]]
print(x)
print(x2)
x2[0]=999
print(x)
print(x2)
#切片后得到一个新的列表 切片是取值操作 不能赋值
x=[10,20,30,40]
x[0]=100
print(x)
x[1:3]=100#报错,数据是不能赋值给数据的
print("x:",x)
#x[1]=把下标为1的存储空间找到然后更新里面的数据
#=x[1]把下标为1的存储空间找到然后取出里面的数据
x=[10,20,"hello",-12,True,None,10000,[10,20,30,40]]
print(x)

x2=x[3:-1]
print(x2)
x2[0]=9999
print(x,x2)#深拷贝

x3=x[3:]
print(x,x3)
x3[0]=100
print(x,x3)

x3[4]="hello"
print(x,x3)

#列表的切片的元素是一种浅拷贝过来的元素,浅切片
#切片后 新列表中的元素和原列表中的切片范围的元素“长得一样”是通过浅拷贝得到的
#x1=浅拷贝x2
#x1=深拷贝x2

x=[10,20,"hello",-12,True,None,10000,[10,20,30,40]]
x2=x[6:]
print(x,x2)
x3=x2[1]
print(x3[0])
x3[0]=9999
print(x,x2,x3)

3、删除列表元素

可以使用 del 语句来删除列表的的元素

list = ['openAI', 'hqyj', 1997, 2004]
print (list)
del list[2]
print (list)
x=[10,20,30,40,50]
del x[2]
#x[2]=None
print(x)
print(len(x))
print(x[2])

del x#删除变量
x=[]#更新变量/删除变量

4、列表操作符

Python 表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print(x)1 2 3迭代

5、嵌套列表

使用嵌套列表即在列表里创建其它列表

a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
print(x)#[['a', 'b', 'c'], [1, 2, 3]]
print(x[0])#['a', 'b', 'c']
print(x[0][1])#b

6、Python列表常用API

操作列表的函数

序号函数
1len(list)列表元素个数
2max(list)返回列表元素最大值
3min(list)返回列表元素最小值
4list(seq)将元组转换为列表

列表的方法

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

http://www.kler.cn/a/348774.html

相关文章:

  • python作业四
  • 【微服务】网关 - Gateway(下)(day8)
  • MFC扩展库BCGControlBar Pro v35.1新版亮点:改进网格控件性能
  • Linux 运行执行文件并将日志输出保存到文本文件中
  • 论文阅读:On determining the hinterlands of China‘s foreign trade container ports
  • C++容器适配器1-基本使用(stack、queue)
  • 生成对抗网络(GANs)详解:原理、架构与应用潜力
  • jmeter使用csv数据
  • 2.C++经典实例-计算两个数的最小公倍数
  • 麻省理工发布 AI 工具,竟可以与未来的自己对话!
  • 实战篇:(四)Vue2 + Three.js 创建可交互的360度全景视图,可控制旋转、缩放完整代码
  • 达梦数据守护主备实时同步集群搭建
  • 24.3 基于文件的服务发现模式
  • 【C++】常用数据结构纲要(简易版)
  • 格式化字符串利用手法-一次机会构造栈链getshell
  • 预计算热点路径技术细节
  • 南京中医药大学与和鲸科技签署101数智领航计划,加速“医学+人工智能”交叉学科人才培养
  • 【MySQL】入门篇—SQL基础:数据操作语言(DML)
  • XPath进阶篇:精准高效的Web解析艺术
  • 保护数据安全:JS前端加密与PHP后端解密实战教程,让敏感信息更安全