Python全栈之路----数据类型—列表
1.列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作。列表里面的数可以重复。
L1 = [ ] #定义空列表
L2 = [ 'a' , 'b' , 'c' , 'd' ] #存四个值,索引为0-3
L3 = [ 'abc' , [ 'def' , 'ghi' ] ] #嵌套列表
2.列表的功能:
创建,查询,插入,删除,移动,修改,排序
L[n] L.count(n) L.index(n) L.append(n) L.insert(m,n) del L[n] L.remove(n) L.pop() L.sort()正序 L.reserve()
>>> L2 = ['a','b','c','d','e',1,2] #创建一个列表
>>> L2[2] #通过索引取值
'c'
>>> L2[-1] #通过索引从裂变右边开始取值
2
>>> L2.index('a') #返回指定元素索引值,从左向右查找,找到第一个匹配的字符的位置
0
>>> L3 = [1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,5,5,8,8,8,8,8,8]
>>> L3[2] #通过索引值取值
1
>>> L3.count(3) #查找有多少个字符为3的索引
7
>>> n = L3.index(2)
>>> L3[n] #n是L3种2的索引值,L3[n]是索引值为n的元素
2
>>> L3[L3.index(2)]
2
>>> L3[0:3] #列表切片,顾头不顾尾
[1, 1, 1]
>>> L3[-5:-1] #后面的列表切片,顾头不顾尾
[8, 8, 8, 8]
>>> L3[-5:] #-5位置的字符及其后面的所有字符
[8, 8, 8, 8, 8]
>>> L3[:3]
[1, 1, 1]
>>> L3[:] #和L3输出结果一致
[1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8]
>>> L3[:7:2] #0-6切片,先取L3[0],然后每两个取一个
[1, 1, 1, 2]
>>> L3[:9:3] #3叫做步长
[1, 1, 2]
>>> L3.append('Alex') #在列表最后面追加字符
>>> L3
[1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8, 'Alex']
>>> L3.insert(0,'Jane') #在列表索引值为0的位置插入数据Jane
>>> L3
['Jane', 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8, 'Alex']
>>> L3[3] = 'Mary' #把索引值为3的位置的元素替换成Mary
>>> L3
['Jane', 1, 1, 'Mary', 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8, 'Alex']
>>> L3[4:6] = 'PeiQi' #批量修改,由于位置不够,PeiQi被拆分,后面的元素后移
>>> L3
['Jane', 1, 1, 'Mary', 'P', 'e', 'i', 'Q', 'i', 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8, 'Alex']
>>> L3.pop() #删除最后一个元素,返回最后一个元素的值
'Alex'
>>> L3.remove(4) #删除从左边数第一个为4的元素
>>> L3
['Jane', 1, 1, 'Mary', 'P', 'e', 'i', 'Q', 'i', 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8]
>>> del L3[3] #全局性指令,删除索引值为3的元素
>>> L3
['Jane', 1, 1, 'P', 'e', 'i', 'Q', 'i', 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8]
>>> del L3[8:16] #批量删除,顾头不顾尾
>>> L3
['Jane', 1, 1, 'P', 'e', 'i', 'Q', 'i', 3, 3, 3, 3, 3, 4, 4, 5, 5, 8, 8, 8, 8, 8, 8]
(3)列表是有序的,但int和str类型不能一起排序。str按照ASCII排序,sort是排序,reverse是顺序反过来,extend是扩展,clear是把整个列表清空,copy是拷贝。
copy: 查看内存地址 id(i) 变量有地址,列表本身有一个地址,列表中的每一个元素又都有自己单独的地址
如果 a = 1 a = b ,b指向的是1,不是a,b不随着a的变化而变化;
如果L1 = L ,L1指向L的内存地址,将L的内存地址比作一个装了很多水果的果盘,那么L1也指的是这个果盘,那么L变化实际是果盘变化,所以L1随L的变化而变化,同时L也会随L1的变化而变化;
如果L1 = L.copy(),将L的内存地址比作一个装了很多水果的果盘,那么L1指的是将这个果盘复制的一个新果盘,但是果盘里的水果并没有被复制,水果是两个果盘共享,所以L变化是旧果盘变化,新果盘不变,所以L1不随L的变化而变化;
>>> L = ['a','d','b','r','A']
>>> L.sort() #将L排序
>>> L
['A', 'a', 'b', 'd', 'r']>>> L.insert(2,'*')
>>> L.insert(3,'#')
>>> L
['A', 'a', '*', '#', 'b', 'd', 'r']
>>> L.sort() #按照ASCI码排序
>>> L
['#', '*', 'A', 'a', 'b', 'd', 'r']
>>> L.reverse() #把顺序反过来
>>> L
['r', 'd', 'b', 'a', 'A', '*', '#']
>>> L4 = [1,2,3,4]
>>> L + L4 #L和L4拼接在一起
['r', 'd', 'b', 'a', 'A', '*', '#', 1, 2, 3, 4]
>>> L.extend(L4) #把L4扩展到L里面
>>> L
['r', 'd', 'b', 'a', 'A', '*', '#', 1, 2, 3, 4]
>>> L.clear() #清空
>>> L
[]
>>> L = [1,2,4,5]
>>> L.copy()
[1, 2, 4, 5]
>>> L1 = L.copy()
>>> L1
[1, 2, 4, 5]
>>> L=[3,4,5]
>>> L1
[1, 2, 4, 5]
>>> L1 = L
>>> L[2] = 'Alex'
>>> L
[3,4, 'Alex']
>>> L1
[3,4, 'Alex']
(4)深浅copy
①浅copy:n3 = names 两个列表中的小列表元素改变同步,其余元素独立改变
>>> names = ['alex','jack','jane',['LT','']]
>>> n3 = names.copy()
>>> names
['alex', 'jack', 'jane', ['LT', '']]
>>> n3
['alex', 'jack', 'jane', ['LT', '']]
>>> names[0] = 'Alex'
>>> names
['Alex', 'jack', 'jane', ['LT', '']]
>>> n3
['alex', 'jack', 'jane', ['LT', '']]
>>> n3[2] = 'Jane'
>>> n3
['alex', 'jack', 'Jane', ['LT', '']]
>>> names
['Alex', 'jack', 'jane', ['LT', '']]
>>> n3[3][1] = 20
>>> n3
['alex', 'jack', 'Jane', ['LT', 20]]
>>> names
['Alex', 'jack', 'jane', ['LT', 20]]
②深copy:将列表完全复制,两个列表完全独立
>>> import copy
>>> n = copy.deepcopy(names)
>>> n
['Alex', 'jack', 'jane', ['LT', 20]]
>>> n[3][0] = 'LongTing'
>>> n
['Alex', 'jack', 'jane', ['LongTing', 20]]
>>> names
['Alex', 'jack', 'jane', ['LT', 20]]
Python全栈之路----数据类型—列表的更多相关文章
- Python全栈之路---数据类型—字符串
字符串:有序的字符的集合,用于存储和表示基本的文本信息,一对单.双.或三引号中间包含的内容称之为字符串 1.特性:有序,不可变(开辟新地址存储字符串,python解释器会定期清空不用了的已存储的) & ...
- Python全栈之路----数据类型—字典
字典:可变,一种key-value的数据类型 info = { 'stu1101' : 'TengLan Wu' , 'stu1102' : 'LongZe Luola' , 'stu1103' : ...
- Python全栈之路----数据类型—元组类型
元组类型:有序,不可变的,又叫只读列表 names = ("alex","jack","eric") 1.元组本身不可变,但如果元组中有可 ...
- Python全栈之路----目录
Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...
- python 全栈之路
目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...
- Python全栈之路目录结构
基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...
- Python全栈之路----常用模块----hashlib加密模块
加密算法介绍 HASH Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...
- Python全栈之路----函数----返回值
函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...
- Python全栈之路----常用数据类型--集合
集合(set):无序的,不重复的数据组合,它的主要作用如下: · 去重,把一个列表变成集合,就自动去重了 · 关系测试,测试两组数据之间的交集.差集.并集等关系 1.基本操作:修改,删除,合并 & ...
随机推荐
- dataguard从库数据库丢失恢复例子(模拟丢失数据文件)
准备工作,使用如下脚本进行数据库的全备份[oracle@localhost ~]$ more rman_backup.sh #!/bin/sh RMAN_OUTPUT_LOG=/home/oracle ...
- 如何退出vim
按ESC键 按ESC键 按ESC键 然后: 最下面出现一条能输入命令的地方 输入冒号 输入冒号 输入冒号 然后输入命令: :w 保存文件但不退出 :w file 将修改另外保存到 file 中,不退出 ...
- 复旦大学2017--2018学年第一学期(17级)高等代数I期末考试第六大题解答
六.(本题10分) 设 $M_n(K)$ 为数域 $K$ 上的 $n$ 阶方阵全体构成的线性空间, $A,B\in M_n(K)$, $M_n(K)$ 上的线性变换 $\varphi$ 定义为 $\ ...
- pip使用豆瓣的镜像源
豆瓣镜像地址:https://pypi.douban.com/simple/ 虽然用easy_install和pip来安装第三方库很方便 它们的原理其实就是从Python的官方源pypi.python ...
- Intellij IDEA的下载安装与破解
一,下载与安装 1.官网下载:https://www.jetbrains.com/idea/ 2.选择Windows对应版本安装 二,破解 1.下载破解补丁:http://idea.lanyus.co ...
- kettle 连接 SQL Server 异常
场景重现 新安装的 kettle(pdi-ce-7.0.0.0-25) 连接 SQL Server 2012 时报错如下: 解决办法 到 https://sourceforge.net/project ...
- P1903 [国家集训队]数颜色 / 维护队列
思路 带修莫队的板子 带修莫队只需要多维护一个时间的指针即可,记录一下每个询问在第几次修改之后,再回退或者前进几个修改操作 排序的时候如果a.l和b.l在一个块里,就看r,如果a.r和b.r在一个块里 ...
- js自己总结的小东西(打印出来方便学习)
1.你对angular有哪些认识? 属于mvvm框架,现在非常的火,由谷歌开发出来并维护的框架,为了解决负责业务中ajax的开发痛苦,刚开始结果angular的时候,确实让我有一种耳目一些,原来代码还 ...
- Angular4.0 项目报错:Unexpected value xxxComponent' declared by the module 'xxxxModule'. Please add a @Pipe...
最近刚刚开始学习angular 4.0,在网上找了一个小项目教程学习,然而学习的过程有点艰辛,,各种报错,我明明就是按照博主的步骤老老实实走的呀!!话不多说,上bug- .- Uncaught Er ...
- 5、SAMBA服务一:参数详解
①:SAMBA服务一:参数详解 ②:SAMBA服务二:配置实例 一.SAMBA简介 samba指SMB(Server Message Block,服务器信息块)协议在网络上的计算机之间远程共享Linu ...