第五天-列表 元组
2018-10-23 03:07:22来源:博客园 阅读 ()
一、列表
简介:相比于字符串.不仅可以存放不同数据类型. 且可以存放大量数据.列表是有序(按照你保存的顺序),有索引,可以切片方便取值。
lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫", "元", "组"), "abc", {"我 叫":"dict字典"},{"我叫集合","集合"}]
列表的索引和切片:
列表和字符串一样有索引
1 #索引切片 2 lis = ["麻花腾","王剑林","马芸","刘东墙","雷君"] 3 print(lis[0]) # 索引获取元素 4 print(lis[1]) 5 lis[3] = "流动墙" # 与字符串不同 列表可发生改变 6 print(lis) 7 8 print(lis[0:3]) # 切片 9 print(lis[-3:]) 10 print(lis[0::2]) # 带步长 11 print(lis[-1:-5:-2]) # 倒着取
列表的增删改查:
注意, list和str是不一样的. lst可以发生改变. 所以直接就在原来的对象上进?了操作
1 #新增 append,insert,extend 2 #.append() 追加 添加到末尾 3 lis = ["周杰伦","林俊杰","王力宏"] 4 print(lis.append("?.,['+_']")) # None 没还回值 打印为空 5 lis.append("许巍") 6 lis.append("周传雄") 7 print(lis) 8 9 # .insert() 插入 在某位置插入 原来的元素后移一位 10 lis.insert(3,"徐良") 11 print(lis) 12 lis.insert(0,"许嵩") # 插入 索引变更 效率不高 13 print(lis) 14 15 #迭代添加 .extend() 16 lis1 = ["周杰伦","林俊杰"] 17 lis1.extend("王力宏") # 等同 ["王力宏"][0] 18 print(lis1) # 迭代 ['周杰伦', '林俊杰', '王', '力', '宏'] 19 lis1.extend(["苏打绿"]) # 整体添加 不常用 20 print(lis1)
1 # 2.删除 pop,remove,clear,del 2 # .pop() 弹出一个 3 lis2 = ["天龙八部","笑傲江湖","倚天屠龙记","射雕英雄传","书剑恩仇录"] 4 lis2.pop() 5 print(lis2) # 默认弹出最后一个 6 lis2.pop(3) 7 print(lis2) # 弹出指定位置元素 8 9 # .remove() 移除指定元素 10 lis2.remove("倚天屠龙记") 11 print(lis2) 12 lis01 = ["天龙八部","笑傲江湖","倚天屠龙记","射雕英雄传","倚天屠龙记","书剑恩仇录"] 13 lis01.remove("倚天屠龙记") # 当有多个时 只移除第一个 14 print(lis01) 15 lis01.remove("雪山飞狐") # 移除不存在元素会报错 ValueError: list.remove(x): x not in list 16 print(lis01) 17 18 # del 切片删除 19 del lis2[0] # 类似pop 20 print(lis2) 21 del lis2[1:] # 批量删除 22 print(lis2) 23 del lis2[1:4:
1 # 3.修改 索引切片 2 lis02 = ["周星驰","周润发","周杰伦","周笔畅","周传雄"] 3 # lis02[1] = "周树人" # 按索引修改 4 # print(lis02) 5 # lis02[0:3]="哇哈哈" # 迭代修改(步长为1) 6 # print(lis02) 7 # lis02[0:3] = ["哇哈哈"] # 元素为列表 原3元素合为一个 8 # print(lis02) 9 lis02[::2] ="周树人","周作人","周星星" # 步长不是1时 元素的个数必须匹配 10 print(lis02)
1 # 4.查询 for 2 lis2 = ["天龙八部","笑傲江湖","倚天屠龙记","射雕英雄传","书剑恩仇录"] 3 for shu in lis2: # shu 表示列表中的每一项 lis2是一个可迭代对象 4 print(shu )
1 # 5.其他操作 .count() .sort() .reverse() 2 lis = ["天龙八部","笑傲江湖","倚天屠龙记","天龙八部","射雕英雄传","书剑恩仇录"] 3 c = lis.count("天龙八部") # 查找天龙八部出现的次数 4 print(c) # 返回 2 5 # .sort() 有序 排序 6 lis1 = [1,2,45,6,3,78,96,24,57] 7 # lis1.sort() # 排序 从小到大 升序 8 # print(lis1) 9 # lis1.sort(reverse = True) # 降序 从大到小 10 # print(lis1) 11 # 无序 翻转 .reverse() 12 lis1.reverse() # 翻过来 13 print(lis1) 14 print(len(lis1)) # 长度
二、列表的嵌套
列表嵌套:降维操作 一层一层看就好
1 # 降维操作 一层一层看就好 2 lis = [["香蕉","苹果","荔枝"],["咖啡","果汁","牛奶"],["煎饼","牛排","奶酪"]] 3 print(lis[1][0]) 4 print(lis[2][1:]) # 找到牛排 奶酪 5 print(lis[0][2][0]) # 降维 一层层找 6 7 # 把煎饼中的饼换成蛋 注意嵌套修改时数据类型 8 lis[2][0] = lis[2][0].replace("饼","蛋") # 多层嵌套的时候如果进行操作。 需要重新赋值。 原因是替换的内容是一个 字符串 9 print(lis) # [['香蕉', '苹果', '荔枝'], ['咖啡', '果汁', '牛奶'], ['煎蛋', '牛排', '奶酪']] 10 11 lis[0][1] = "葡萄" # 内部元素是可变数据类型 可直接修改 12 print(lis)
三、元祖和元祖嵌套
元祖:tuple 表示 与列表相比 除了不能增删改 其他与列表一样
与列表类似由()组成,可放任何类型数据,内部元素用逗号隔开 但:只读不可改 可索引切片循环
1 tup = ("001","张三","李四","王二","@$#.,") 2 print(tup) 3 print(tup[0]) # 索引 4 print(tup[3]) 5 print(tup[0:3]) # 切片后仍是元祖 ('001', '张三', '李四') 6 print(tup[0:4:2])
元祖可改与不可改
1 tup1 = ("周杰伦", "哇哈哈", "爽歪歪", ["酸酸乳", "三鹿奶粉", "AD钙奶"]) 2 # tup1[0] = "周笔畅" # 子元素 不可改 3 tup1[3].append("优酸乳") 4 print(tup1) # ('周杰伦', '哇哈哈', '爽歪歪', ['酸酸乳', '三鹿奶粉', 'AD钙奶', '优酸乳']) 5 # 注意:不可变是子元素不可变.而子元素内的子元素可变,这取决于子元素是否是可变对象. 6 # 元组的不可变. 元组的不可变指的是元组内部第一层元素的内存地址
几个特殊情况
1 lis =[] # 新列表 2 lis1 = list() # 新列表 3 print(lis,lis1) # [] [] 4 5 tup1 = () # 元祖 6 tup2 = tuple()# 元祖 7 print(tup1,tup2) # () () 空元组 不可改 无意义
元祖若只有一个元素,必须加逗号
1 # 元祖如果只有一个元素 必须加逗号 2 tup3 = (1) 3 tup3 = (1*(3-9)/8+9*4) # () 可以是 运算符 优先级 4 tup4 = ("爽歪歪",) 5 print(tup3) # 不是元组 6 print(tup4) # 是元组
四、range
range 可以快速获取一组数据 通过for循环获取这些数据
1 # range 可以快速获取一组数据 通过for循环获取这些数据 2 3 # 用while获取 4 i = 0 5 while i<100: 6 print(i) 7 i +=1 8 9 # range 获取 10 for i in range(100): 11 print(i) 12 13 for i in range(0,20,2): # 每两个获取一个 14 print(i) 15 16 for i in range(20,0,-2): # 反过来切片 也一样 [ ) 前闭后开 17 print(i)
打印出索引 + 元素
1 # 打印出索引 + 元素 2 lis = ["语文", "数学", "英语", "代数", "体育", "生物", "化学"] 3 for i in lis: 4 print(i) # 默认for会忽略掉 索引号 5 6 for i in range(len(lis)): 7 print(i,lis[i]) # i 索引 lis[i] 获取元素 8 9 e = "今天晚上要加班!" 10 for i in range(len(e)): 11 print(i,e[i])
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:数据分析——numpy
- 列表和元组 2019-08-13
- Python数据基础类型-列表 2019-08-13
- python第三天---列表的魔法 2019-07-24
- python 基础学习笔记(3)--列表与元组 2019-07-24
- 【第五篇】Python数据类型--str&bytes 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash