第五天-列表 元组

2018-10-23 03:07:22来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、列表

  简介:相比于字符串.不仅可以存放不同数据类型. 且可以存放大量数据.列表是有序(按照你保存的顺序),有索引,可以切片方便取值。

  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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【13】python time时间模块知识点备查

下一篇:数据分析——numpy