记录我的 python 学习历程-Day03 列表/元组/rang
一、列表初识
列表是 Python 的基础数据类型之一,它是以‘‘[ ]’’的形式括起来的,每个元素用“,”隔开,属于容器型数据类型,他可以存放大量的、各种类型的数据。
基本格式
li = ['Dylan', 'yaoyao', 1234, True, (1212, '中文'), ['列表', 'qiantao', {'name':'Dylan'}]]
可以看到,列表内可以存放多种数据类型,或以嵌套列表,元组,字典,布尔值等。
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。
而且列表是有序的,有索引值,可切片,方便取值。
列表的创建
方式一:(常用)
l1 = [1, 33, 'Dylan']
方式二:(不常用)
l1 = list() # 默认是空列表
#l1 = list(iterable) # 括号里是一个可迭代对象
l1 = list('12345')
print(l1) # ['1', '2', '3', '4','5']
方式三: 列表推导式(后面会讲到)
l1 = [i for i in range(1, 5)]
print(l1) # [1, 2, 3, 4] 注意看 列表内的数据类型是 int 型
二、列表的索引和切片
索引
l1 = ['a', 'b', 'c', 'd', 'e', 'f']
索引 0 1 2 3 4 5(-1)
# 打印列表中索引0 的值并改回该值的数据类型
print(l1[0], type(l1[0])) # a <class 'str'>
# 打印列表中最后一个索引的值,在不知道列表长度时,一般用 -1 找到列表中最后一个索引的值。
print(l1[-1]) # 等价于 print(l1[5])
切片
切片就是通过索引(索引:索引:步长)截取列表的一段,形成新的列表(原则就是顾头不顾尾)
# 正取 切片规则:顾头不顾尾 格式:l1 = l[首:尾:步长]
l = ['a', 'b', 'c', 'd', 'e', 'f']
l1 = [1:3] # 取了'b','c' 并赋值给新列表 l1
print(l1) # ['b', 'c'] # 倒取 切片规则:顾头不顾尾 格式:l1 = l[首:尾:-步长]
l = ['a', 'b', 'c', 'd', 'e', 'f']
l1 = [4:1:-1] # 取了'e', 'd' ,'c' 并赋值给新列表 l1 注意:反取 步长为负数
print(l1) # ['e', 'd', 'c']
三、列表的增/删/改/查
列表的增删改查是对列表的一系列常用操作,非常重要。
列表的增
l.append( 要插入的数据 ) 插入新元素到列表索引最后一位
l = ['a', 'b', 'c', 'd', 'e', 'f']
l.append('Dylan')
print(l) # ['a', 'b', 'c', 'd', 'e', 'f', 'Dylan']
举例:人员录入程序,将人员名单录入列表,按 Q 退出录入
hr = [] # 建立一个空列表
while 1:
username = input("请输入你要录入的人员(退出请按'Q'):")
if username.strip().upper() == 'Q':
break
else:
hr.append(username)
print(hr)
l.insert( 索引, 要插入的数据 ) 根据索引插入
l = ['a', 'b', 'c', 'd', 'e', 'f']
l.insert(2,'Dylan') #插入位置=索引位置,原索引位置数据后移一位
print(l) # ['a', 'b', 'Dylan', 'c', 'd', 'e', 'f']
l.extend( 可迭代对象 ) 迭代插入
l = ['a', 'b', 'c', 'd', 'e', 'f']
l.extend('这是一个可迭代对象')
# l.extend([1,2,3]) #会将列表拆分成单个元素,分别插入
print(l) #['a', 'b', 'c', 'd', 'e', 'f', '这', '是', '一', '个', '可', '迭', '代', '对', '象']
列表的删
l.pop( 索引 ) 按索引删除 并返回所删除的元素
l = ['a', 'b', 'c', 'd', 'e', 'f']
l.pop(2) # 括号里写索引,可以将对应索引的元素删除,并可以反回给一个变量
print(l) # ['a', 'b', 'd', 'e', 'f']
print(l.pop(2)) # d
l.pop() # 括号里不写索引,默认是删除最后一个,并可以将删除的元素反回给一个变量
print(l) # ['a', 'b', 'd', 'e', 'f']
print(l.pop()) # e
l.remove( 元素 ) 按元素删除 如果有重名元素,默认删除从左数第一个
l = ['a', 'b', 'c', 'd', 'e', 'f']
l.remove('f')
print(l) # ['a', 'b', 'c', 'd', 'e',]
l.clear() 清空列表
l = ['a', 'b', 'c', 'd', 'e', 'f']
l.clear() # 清空列表,但列表还在,只不过是个空列表
print(l) # []
del 删除列表
l = ['a', 'b', 'c', 'd', 'e', 'f']
# 删除整个列表
del l # 将整个列表删除了
# 按照索引删除
del l[-1]
print(l) # ['a', 'b', 'c', 'd', 'e']
# 按照切片(步长)删除
del l[::2]
print(l) # ['a', 'c', 'e']
列表的改
直接改
s = [1,2,3,'fjdkaj','fdsaeddd',1234,'ffdsaecc']
s[0] = 'one' #直接改,找到对应的索引,直接替换
s[1] = ['one',1,2,3] #还可以改成列表 list ,直接替换
print(s)
切片改
s = [1,2,3,'fjdkaj','fdsaeddd',1234,'ffdsaecc']
s[0:3] = 'one' #把0到3拿出来,填上你改的,但是,是迭代的去改,以最小元素为单位
s[0:3] = [1,2,3,8,8,] ##把0到3拿出来,迭代的填上你列表的最小元素,但是,是迭代的去改,以最小元素为单位
print(s) #打印内容:['o', 'n', 'e', 'fjdkaj', 'fdsaeddd', 1234, 'ffdsaecc']
列表的查
按索引查
l = ['a', 'b', 'c', 'd', 'e', 'f']
print(l[3]) # d
按切片(步长)查
l = ['a', 'b', 'c', 'd', 'e', 'f']
print(l[1:4:2]) # b d
for i in 迭代查
s = [1,2,3,'fjdkaj','fdsaeddd',1234,'ffdsaecc']
for i in s: #迭代查
print(i)
四、列表的嵌套
嵌套形式
l = [1, 2, 3, '1A', ['Dylan', 33],66]
# 列表中的列表称之为嵌套列表,增删改查的方式与列表的相同,同样可以切片可以查改删增。
五、元组
元组又被称为只读列表,可以存储大量的数据,可以索引,切片(步长)。
列表的基本格式与列表相同,不同的是:元组是以圆括号包起来的,而列表是方括号包起来的。
格式如下:
t = (1, 2, 'Dylan', [1, 2, 3, 'a', 'b', 'c'])
需要注意的是:元组中的数据可查不可增删改,但有个例外就是,元组内如果嵌套了列表,这个列表是可以进行增删改的,方法同列表的增删改查。
元组的拆包
元组通常用于拆包,比如:
a, b = (1, 2) # 多一个,少一个都不行。
print(a, b) # 1 2
六、range
类似于列表,自定制数字范围的数字列表
r = range(10) # [0,1,2,3,4,5,6,7,8,9]
print(r) # range(0, 10)
for i in r:
print(i) # 依次打印0到9的数字
l = [1, 2, 3, '1A', ['Dylan', 33],66]
for i in range(len(l)): # 将列表的索引依次赋值给变量 i
print(i) # 打印 i (也就是列表的索引)
# len() 获取数据的元素个数
记录我的 python 学习历程-Day03 列表/元组/rang的更多相关文章
- 记录我的 python 学习历程-Day03 数据类型 str切片 for循环
一.啥是数据类型 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,"汉"是文字,否则它是分 ...
- 记录我的 python 学习历程-Day13 匿名函数、内置函数 II、闭包
一.匿名函数 以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数. 课上练习: # 正常函数: def func(a, b): return a + b print(func(4, 6)) ...
- 记录我的 python 学习历程-Day02-while 循环/格式化输出/运算符/编码的初识
一.流程控制之--while 循环 循环就是重复做同一件事,它可以终止当前循环,也可以跳出这一次循环,继续下一次循环. 基本结构(基本循环) while 条件: 循环体 示例 # 这是一个模拟音乐循环 ...
- 记录我的 python 学习历程-Day05 字典/字典的嵌套
一.字典的初识 为什么要有字典 字典与列表同属容器型数据类型,同样可以存储大量的数据,但是,列表的数据关联性不强,并且查询速度比较慢,只能按照顺序存储. 什么是字典 先说一下什么叫可变与不可变的数据类 ...
- 记录我的 python 学习历程-Day06 is id == / 代码块 / 集合 / 深浅拷贝
一.is == id 用法 在Python中,id是内存地址, 你只要创建一个数据(对象)那么就会在内存中开辟一个空间,将这个数据临时加载到内存中,这个空间有一个唯一标识,就好比是身份证号,标识这个空 ...
- 记录我的 python 学习历程-Day12 生成器/推导式/内置函数Ⅰ
一.生成器 初识生成器 生成器的本质就是迭代器,在python社区中,大多数时候都把迭代器和生成器是做同一个概念. 唯一的不同就是: 迭代器都是Python给你提供的已经写好的工具或者通过数据转化得来 ...
- 记录我的 python 学习历程-Day08 文件的操作
文件操作的初识 用 python 代码对文件进行各种操作. 基本构成: 文件路径:path 打开方式:读.写.追加.读写.写读-- 编码方式:utf-8 / gbk / gb2312-- f = op ...
- 记录我的 python 学习历程-Day11 两个被忽视的坑、补充知识点、函数名的应用、新版格式化输出、迭代器
补充知识点 函数形参中默认参数的陷阱 针对不可变数据类型,它是没有陷阱的 def func(name, sex='男'): print(name) print(sex) func('Dylan') # ...
- 记录我的 python 学习历程-Day07 基础数据类型进阶 / 数据类型之间的转换 / 基础数据类型总结 / 编码的进阶
基础数据类型 str(字符串) str:补充方法练习一遍就行 s.capitalize() 首字母大写,其余变小写 s = 'dyLAn' print(s.capitalize()) # Dylan ...
随机推荐
- dianFanEditor Web在线编辑器
个人很喜欢kodexplorer 的在线编辑器.苦于没有加载FTP目录的功能. 索性自己改造了一下,用.NET 做了几个WEB接口,用CEF3做浏览器内核,打包了在线地址做编辑器. 即可加载本地磁盘, ...
- Linux学习(推荐学习资源)——保持更新
1. 介绍 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的Unix工具软件.应用程序和网络协议. ...
- PHP关于access_token失效问题
PHP关于access_token失效问题 有时候PHP设置了缓存 明明就是没有过期 但却提示失效这情况一般就是1 多个appid和secrete 生成的access_token互相覆盖了 所以 这种 ...
- 雅虎日本如何用 Pulsar 构建日均千亿的消息平台
雅虎日本是一家雅虎和软银合资的日本互联网公司,是日本最受欢迎的门户网站之一.雅虎日本的互联网服务在日本市场占主导地位. 下图从三个维度显示了雅虎日本的经营规模.第一个是服务数量,雅虎日本提供上百种互联 ...
- VMware安装Ubuntu 16.04.4 LTS
1.下载Ubuntu镜像 https://www.ubuntu.com/download/desktop 2.创建新的虚拟机 3. 4.这里默认即可,可以不选 5. 6. 7.这里位置可以随时改 8. ...
- 《JAVA 程序员面试宝典(第四版)》之循环、条件、概率
分享内容:关于集合的使用 书页号码:77页 题目:一个字符串中包含a~z中的多个字符,如有重复,如String data = "aavzcadfdsfsdhshgwasdfasd ...
- secureCRT安装与激活
SecureCRT安装及激活方式 百度网盘地址: SecureCRT及激活软件的地址: 1. 安装secureCRT 百度网盘下载,点击scrt814-x64.exe,按照提示安装secureCRT, ...
- 万恶之源-python加深
1.列表 1.1列表的含义: 它是以[]括起来,每个元素用""引起来,用逗号隔开而且可以存放各种类型的数据. li=["樊大爷",王立军",&qu ...
- Openlayers ol.interaction.Select传值问题
说明: 在使用ol.interaction.Select时,我定义的变量作用域作用不到其回调函数里,但我在select结果中,需要用到这些变量 解决方案: 虽想了个办法解决了,但不知道是不是合理:是否 ...
- python3 之 判断字符串是否只为数字(isdigit()方法、isnumeric()方法)
Isdigit()方法 - 检测字符串是否只由数字组成 语法: str.isdigit() 参数: 无 返回值: 如果字符串只包含数字,则返回True,否则返回False. 实例: 以下实例展示了 ...