基本数据类型(list,tuple)
一丶列表
1.1列表的介绍
列表是python中的基本数据类型之一,其他编程语言也有类似的数据类型,如js 中的数组,java中的数组等等,它是以[]括起来每个元素用' , '隔开而且可以存放各种数据类型:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫", "元", "组"), "abc", {"我 2 叫":"dict字典"},{"我叫集合","集合"}]
列表相比于字符串.不仅可以存放不同的数据类型,而且可以存放大量的数据,32位的python可以存放 536870912个元素,64位可以存放:115921504606846975个元素,而且列表是有序的(按照你保存的顺序),有索引,可以切片方便取值.
2.2列表的索引和切片
列表和字符串一样也拥有索引:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = ["海上钢琴师", "奥特曼", "咒怨", "舌尖上的中国", "穹顶之下", "金刚"] 2 print(lst[3][2]) # 上 3 print(lst[-2]) # 穹顶之下 4 print(lst[1:4]) # ['奥特曼', '咒怨', '舌尖上的中国'] 5 print(lst[-3:-1]) # 顾头不顾尾 6 print(lst[1::2]) 7 print(lst[-1:-5:-2])
列表的切片:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = ["麻花藤", "王剑林", "⻢芸", "周鸿医", "向华强"] 2 print(lst[0:3]) # ['麻花藤', '王剑林', '⻢芸'] 3 print(lstt[:3]) # ['麻花藤', '王剑林', '⻢芸'] 4 print(lst[1::2]) # ['王剑林', '周鸿医'] 也有步⻓ 5 print(lst[2::-1]) # ['⻢芸', '王剑林', '麻花藤'] 也可以倒着取 6 print(lst[-1:-3:-2]) # 倒着带步⻓
二丶列表的增删改查
1.增,注意,list 和str是不一样的,lst 可以发生改变,所以直接在原来的对象上进行了操作
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"] 2 # 在屁股后面添加 3 lst.append("黄宏") # 在原有的基础上进行的操作 4 # 在xxx位置插入xxxx内容 5 lst.insert(1,"王力宏") 6 lst.extend(["麻花藤", "马云", "王健林", "许家印"]) # 迭代添加 7 print(lst)
2.删除 (pop,remove,clear,del)
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 # 删除 2 data = lst.pop(2) # 返回被删除的数据 3 print(data) 4 print(lst) 5 6 lst.remove("赵四") # 删除元素. 7 lst.remove("刘能") # 如果不存在会报错 8 9 # 切片删除 10 del lst[1:3] 11 12 # 清空 13 lst.clear() 14 print(lst)
3.修改(索引切片修改)
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = ["王者农药", "魔兽世界", "DNF", "逆水寒", "反恐精英"] 2 lst[0] = "扫雷" 3 print(lst) 4 lst[3] = "吃鸡" 5 lst[1:3] = ["跑跑卡丁车"] # 先删除后添加 6 lst[1::2] = ["QQ华夏","QQ三国"] # 切片修改的时候. 如果步长不是1. 注意元素的个数 7 print(lst)
4.查询.列表是一个可迭代对象可以进行for循环
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = ["锅包肉", "好人家火锅", "巫山烤鱼", "清水煮白菜", "烤鸭"] 2 for el in lst: # element(元素) 3 print(el)
5.其他操作
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = ["太⽩", "太⿊", "五⾊", "银王", "⽇天", "太⽩"] 2 c = lst.count("太⽩") # 查询太⽩出现的次数 3 print(c) 4 lst = [1, 11, 22, 2] 5 lst.sort() # 排序. 默认升序 6 print(lst) 7 lst.sort(reverse=True) # 降序 8 print(ls) 9 lst = ["太⽩", "太⿊", "五⾊", "银王", "⽇天", "太⽩"] 10 print(lst) 11 lst.reverse() 12 print(lst) 13 l = len(lst) # 列表的⻓度 14 print(l)
三丶列表的嵌套
采用降维度操作.一层一层的看
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = ["alex", "gay","wusir",["范冰冰","李冰冰",[1, "火锅", "ritian", "凤爪"],"王冰冰"]] 2 # print(lst[3][2][1]) # 火锅 3 lst[3][2][2] = lst[3][2][2].upper() 4 print(lst) 5 6 lst[3][2][0] = lst[3][2][0] + 99 7 print(lst)
列表的相关操作
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 lst = [1,5,3,4,3,2,44,3,2,22] 2 lst.sort(reverse=True) # 排序. 默认升序, reverse=True 降序 3 print(lst) 4 5 lst = ['晓雪',"小茹", "小花","晓梅"] 6 # lst.reverse() # 翻转 7 # print(lst) 8 9 print(len(lst))
四丶元组和元组嵌套
元组:俗称不可变的列表,又被称为制度列表,元组也是python 的剧本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,车讯可以.循环也可以,切片也可以,但是就是不能改
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 print((1+3)*5) 2 print((3)) 3 tu = (3, ) # 元组中如果只有一个元素. 需要在括号里写一个, 4 tu = tuple() # 空元组 5 print(type(tu)) 6 7 tu = ("人民币", "美元", "英镑", "欧元") 8 tu.append("哈哈") 9 tu[0] = "日元" # 不予许修改 10 del tu[2] # 删除也不行 11 12 print(tu[2]) # 索引可以用 13 print(tu[::2]) 14 15 for el in tu: 16 print(el)
关于不可变,注意:这里的元组的不可变得意思是子元素不可变,而子元素内部的子元素是可以变,这取决于子元素是否有可变对象.
元组中如果只有一个元素,一定要添加一个逗号,否则就不是元组
tu = (1,) print(type(tu))
元组的第一层是不能进行赋值的. 内部元素是没有要求
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 tu = (1, "哈喽", "how are you?", "alex", ["alex"]) 2 tu[3].upper() 3 print(tu)
元组也有count(), index(), len()等⽅法.
五丶range
range可以帮我们的得到一组数据,通过for循环能够获取到这些数据
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 range()是一个可迭代对象 2 1. range(n) 0 -> n-1 3 for i in range(10): 4 print(i) 5 2. range(m,n) m -> n-1 6 for i in range(1,10): 7 print(i) 8 3. range(m,n,q) m -> n-1 每q个取一个 9 for i in range(1,10,3): 10 print(i) 11 12 for i in range(100, 90, -1): 13 print(i)
ps:取元素值,和索引的示例
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 # 0 1 2 3 4 5 2 lst = ["砂锅", "馒头", "盖浇饭", "刀削面", "大麻花", "大煎饼"] 3 # 获取到列表的索引. 拿到索引之后. 可以拿到元素 4 for i in range(len(lst)): 5 print(i) # i就是lst的索引 6 print(lst[i]) 7 # for el in lst: 8 # print(el)