Python全栈开发:list、元祖常用方法操作
列表[] 索引与切片
#例题
#li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong'] # #例子1 找出列表中索引为0的元素
# l1 = li[0]
# print(l1)
# 结果输出:
# yijiajun # #例子2 找出列表中索引为1的元素
# l2 = li[1]
# print(l2)
# 结果输出:
# [1, 3, 5, 7, 9] #例子3 (对列表切片,要遵循顾头不顾尾的原则)对首为索引0,尾为索引3的列表切片。
# l3 = li[0:3]
# print(l3)
# 结果输出:
# ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang'] 列表增加用法
#第一种方法:列表增加 append() 格式: append(value)元素默认在末尾增加
#PS:低级错误:append()只是一个新增动作,如果把li.append('王强')打印出来,会输出None.
#例题
# li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong']
# l3 = li.append('王强')
# print("append()的低级错误---->print(li.append('王强')) ",li.append('王强'))
# print(li)
# #输出结果:
# # append()的低级错误---->print(li.append('王强')) None
# # ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong', '王强', '王强']
#第二种方法:插入 insert() 格式: insert(index,value)
#PS:低级错误:insert()只是一个新增动作,如果把li.insert(2.2)打印出来,会输出None.
# li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong']
# l4 = li.insert(2,2) #表示在列表索引2的位置插入数字2
# print("insert()的低级错误----print(li.insert(2.2)) ",li.insert(2,2))
# print(li)
# 输出结果:
# insert()的低级错误----print(li.insert(2.2)) None
# ['yijiajun', [1, 3, 5, 7, 9], 2, 2, 'zhangliang', 'zhaoritian', 'sunwukong']
#第三种方法:extend() 迭代增加 自动把字符串拆分为最小元素
#PS:低级错误:extend()只是一个新增动作,如果打印出来会报None
#例题
# li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong']
# l5 = li.extend('Iloveyou')
# print(li)
# 输出结果:
# ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong', 'I', 'l', 'o', 'v', 'e', 'y', 'o', 'u'] 列表删除用法:
#第一种方法:pop() 按索引删除,如果为空,默认删除最后一个元素。(打印会有返回值)
# li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong']
# l6 = li.pop(2) #删除列表中索引为2的元素
# #l7 = li.pop() #默认删除列表中最后一个元素
# print(li.pop(2),li)
# print(li.pop())
# 输出结果:
# zhaoritian ['yijiajun', [1, 3, 5, 7, 9], 'sunwukong']
# sunwukong
#第二种方法:remove() 按元素value删除
#PS:remove() 打印输出None
# li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong']
# l8 = li.remove('yijiajun')
# print(l8,li)
# 输出结果:
# None [[1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong']
#第三种方法:del li 默认删除列表,可以切片
#PS:del是python语句,而不是列表方法,无法通过list来调用。使用del可以删除一个元素,当元素删除之后,位于它后面的元素会自动移动填补空出来的位置。
# li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong']
# del li[0:2]
# print(li)
# 输出结果:
# ['zhangliang', 'zhaoritian', 'sunwukong']
#第四种方法:列表清空 clear()
#PS:打印clear()会输出None
# li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong']
# l9 = li.clear()
# print(li)
# 输出结果;
# [] 列表:改
#第一种方法:赋值(通过index索引指定位置修改)
# li = ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong']
# li[0] = 'zhangshaohan'
# print(li)
# 输出结果:
# ['zhangshaohan', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong']
#第二种方法:切片
# li = ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong']
# #li[0:3] = 'love' #切片修改会把字符串拆分为最小元素
# li[0:3] = [2,4,5,6]
# print(li)
# 输出结果:
# [2, 4, 5, 6, 'zhaoritian', 'sunwukong']
#列表查询
#第一种方法:for有限循环
# li = ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong']
# for i in li:
# print(i)
# 输出结果:
# yijiajun
# [1, 3, 5, 7, 9]
# zhangliang
# zhaoritian
# sunwukong
#第二种方法: print()
# li = ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong']
# print(li[3])
# print(li[0:3])
# 输出结果:
# zhaoritian
# ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang']
# ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong'] 公共方法:len() count() index() ps:在列表中不支持find()处理
# li = ['yijiajun', [1, 3, 5, 7, 9], 'zhangliang', 'zhaoritian', 'sunwukong']
# print('测量长度',len(li))
# print('统计字符yijiajun出现的次数',li.count('yijiajun'))
# print('查找字符zhangliang的索引',li.index('zhangliang'))
# 输出结果:
# 测量长度 5
# 统计字符yijiajun出现的次数 1
# 查找字符zhangliang的索引 2 排序
#正向排序 sort()
#PS:打印sort(),会输出返回None
li = [1,4,5,2,9,3]
# print(li.sort(),li)
#输出结果:
#None [1, 2, 3, 4, 5, 9]
#反向排序 sort(reverse=True)
#PS:打印sort(),会输出返回None
# print(li.sort(reverse=True),li)
# 输出结果:
# None [9, 5, 4, 3, 2, 1]
#反转:reverse()
#PS:打印reverse() ,会输出返回None
# print(li.reverse(),li)
# 输出结果:
# None [1, 2, 3, 4, 5, 9] 列表嵌套
# li = ['yijiajun','zoukai','caoyuetent','hulian',['lizhen','yanggou',100],'caihanyu']
# print(li[0][0])
# print('大小写互换',li[0].swapcase())
# print('首字母大写',li[0].capitalize())
# 输出结果:
# y
# YIJIAJUN
# Yijiajun #替换
# l11 = li[0].replace('jiajun','jiaping')
# print(l11)
# 输出结果:
# yijiaping #课间作业
#把列表中100的元素,变成99(用两种方法)
#方法一
# li[4][2] = 89
# print(li)
#方法二
# li[4][2] = str(li[4][2])
# d1 = int(li[4][2].replace('100','89'))
# li[4][2] = int(li[4][2])
# print(li)
# 输出结果:
# ['yijiajun', 'zoukai', 'caoyuetent', 'hulian', ['lizhen', 'yanggou', 100], 'caihanyu'] 元祖(只读,可循环查询,可切片)
#PS:元祖本身不能修改只可读,但是如果元祖里嵌套了列表就可能可以修改
# yu = (1,3,5,'yijiajun',[2,4,6],'zoukai')
# print(yu[3])
# print(yu[0:4])
# print(yu[::-1])
# print(yu[-1::-1])
# print(yu[-1::-2])
# 输出结果:
# yijiajun
# (1, 3, 5, 'yijiajun')
# ('zoukai', [2, 4, 6], 'yijiajun', 5, 3, 1)
# ('zoukai', [2, 4, 6], 'yijiajun', 5, 3, 1)
# ('zoukai', 'yijiajun', 3)
#for有限循环查询
# for i in yu:
# print(i)
# 输出结果:
# 1
# 3
# 5
# yijiajun
# [2, 4, 6]
# zoukai
#常用方法操作
# print(yu[3].upper())
# print(yu[3][0].upper())
# print(yu[-1].capitalize())
# 输出结果:
# YIJIAJUN
# Y
# Zoukai
#验证元祖是否是本身不能修改只可读,但是如果元祖里嵌套了列表就可能可以修改
# a1 = yu.append('zhang')
# print(li)
# 输出结果:
# a1 = yu.append('zhang')
# AttributeError: 'tuple' object has no attribute 'append' # tu = yu[4].append('zhangxia')
# print(yu)
# 输出结果:
# (1, 3, 5, 'yijiajun', [2, 4, 6, 'zhangxia'], 'zoukai') #join() 用于将序列中的元素以指定的字符连接生成一个新的字符串。
#PS:join最后返回字符串 转换:列表转换字符串用join(),字符串转列表用split()
# 例子
# li = ['1','2','3','beauty']
# l0 = ','.join(li)
# print(l0.split(','),l0,type(l0)) # range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。
#PS:顾头不顾尾,可加步长,如果是从小到大生成迭代对象,加步长,步长不能为负,否则会不运行返回空;如果要从大到小生成迭代对象,加步长,步长不能为正,否则会不运行返回空(面试套路)。
# for i in range(0,5):
# print(i)
# #相等于
# for i in range(5):
# print(i)
#例1
# ran = range(0,10,1)
# for i in ran:
# print(i)
# 结果输出:
# 0
# 至
# 9
#例2
# ran = range(0,10,-1)
# for i in ran:
# print(i)
# 结果输出
# 空
#例3
# ran = range(10,0,-1)
# for i in ran:
# print(i)
# 结果输出:
# 10
# 至
# 1
# #例4
# ran = range(10,0,1)
# for i in ran:
# print(i)
# 结果输出:
# 空 # 课间作业:把tu元祖里的数据依次打印出来(包含嵌套列表中的数据)
tu = ('a','c','d',[1,2,3,4,'g'],1,2,3,'bb')
#方法1
for i in tu:
if type(i) == list:
for k in i:
print(k)
else:
print(i)
#方法二
for i in range(len(tu)):
if type(tu[i]) == list:
for k in tu[i]:
print(tu[i][k])
else:print(tu[i]) #方法三
tu = ('a','c','d',[1,2,3,4,'g'],1,2,3,'bb')
index = 0
k = 0
while index < len(tu):
if type(tu[index]) == list:
while k < len(tu[index]):
print(tu[index][k])
k += 1
else:
index += 1
else:
print(tu[index])
index += 1
Python全栈开发:list、元祖常用方法操作的更多相关文章
- Python 全栈开发:dict(字典)常用方法操作、dict嵌套
数据类型的划分:可变数据类型和不可变数据类型. 不可变数据类型(可哈希):元祖.bool.int.str 可变数据类型(不可哈希):list.dict,set(集合) dict(字典): dict(字 ...
- python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整性约束)
昨日内容回顾 一.回顾 定义:mysql就是一个基于socket编写的C / S架构的软件 包含: ---服务端软件 - socket服务端 - 本地文件操作 - 解析指令(mysql语句) ---客 ...
- 巨蟒python全栈开发-第8天 文件操作
一.文件操作 今日大纲: 1.文件操作->open() open 打开 f=open(文件路径,mode='模式',encoding='编码格式') #python最最底层操作的就是bytes ...
- python 全栈开发,Day54(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)
04-jQuery的属性操作 jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作 html属性操作:是对html文档中的属性进行读取,设置和移除操作.比如at ...
- python 全栈开发,Day52(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)
昨日作业讲解: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉, ...
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
python全栈开发笔记第二模块 第四章 :常用模块(第二部分) 一.os 模块的 详解 1.os.getcwd() :得到当前工作目录,即当前python解释器所在目录路径 impor ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- python全栈开发中级班全程笔记(第二模块、第四章(三、re 正则表达式))
python全栈开发笔记第二模块 第四章 :常用模块(第三部分) 一.正则表达式的作用与方法 正则表达式是什么呢?一个问题带来正则表达式的重要性和作用 有一个需求 : 从文件中读取所有联 ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- Python全栈开发记录_第一篇(循环练习及杂碎的知识点)
Python全栈开发记录只为记录全栈开发学习过程中一些难和重要的知识点,还有问题及课后题目,以供自己和他人共同查看.(该篇代码行数大约:300行) 知识点1:优先级:not>and 短路原则:a ...
随机推荐
- YUI前端优化原则-cookie与图像
四.图片.Coockie与移动应用篇 除此之外,图片和Coockie也是我们网站中几乎不可缺少组成部分,此外随着移动设备的流行,对于移动应用的优化也十分重要.这主要包括:Coockie: 减小Cook ...
- VC++知识点整理
1.内联函数 定义:定义在类体内的成员函数,即函数的函数体放在类体内 特点:在调用处用内联函数体的代码来替换,用于解决程序的运行效率问题.一定要在调用之前定义,并且内联函数 ...
- Java 设计模式系列(七)桥接模式
Java 设计模式系列(七)桥接模式 桥接模式(Bridge)是一种结构型设计模式.Bridge 模式基于类的最小设计原则,通过使用封装.聚合及继承等行为让不同的类承担不同的职责.它的主要特点是把抽象 ...
- 饮品类App原型制作分享-WineRatingsPlus
WineRatingsPlus是一款关于红酒的App应用.它帮助你在用餐.聚会或任何场合选择葡萄酒时,都能方便的得到专家意见.同时,它也能帮助鉴赏家和感兴趣的人对葡萄酒更多的了解和选择. 在这款Moc ...
- GO语言使用gopsutil包进行机器信息采集
GO语言本身拥有极强的性能,非常适合做一些后端的数据采集管理以及运维系统. 其中会面临对当前系统信息的采集,我在这里使用的是GO的工具包 gopsutil 贴出一套测试代码,抛砖引玉: import ...
- redis windows下安装
1.下载redis windows文件包 下载地址 2.解压文件包 复制压缩包地址 3.进入cmd 命令行 cd进入redis文件包目录 4.执行 redis-server.exe 使用netsta ...
- 使用JDK实现动态代理
- SqlServer 的一个坑
以前一直以为sqlserver 在做ddl 操作的时候是锁表的,而oracle 是锁行,感觉oracle 要比sqlserver 先进一些,但是这是我的认识错误.其实sqlserver 也是可以锁行的 ...
- Python入门基础学习 一
Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...
- Jenkins Pipeline+sonar构建质量平台
前提: Jenkins JDK 目录: 1.安装sonar插件:SonarQube Scanner for Jenkins 2.安装SonarQube 3.安装sonar-scanner ++++++ ...