Python基础知识详解 从入门到精通(四)列表、元组、字典、集合

Python基础知识详解 从入门到精通(四)

本篇主要是介绍python,内容可先看目录
其他基础知识详解,欢迎查看本人的其他文章
Python基础知识详解 从入门到精通(一)介绍
Python基础知识详解 从入门到精通(二)基础
Python基础知识详解 从入门到精通(三)语法与函数
Python基础知识详解 从入门到精通(五)模块管理
Python基础知识详解 从入门到精通(六)文件操作
Python基础知识详解 从入门到精通(七)类与对象
Python基础知识详解 从入门到精通(八)魔法方法
Python基础知识详解 从入门到精通(九)生成exe文件(可执行)、pyc、pyo文件

列表(list)

查看列表内置函数 dir(list)

创建列表
列表 m = [‘slk’,3,4,6.44,[2,4,6]]
空列表 m = []

/ 是续行
如 [3,3,45,/
5,6,7] 是合法的 第二行会自动接上上面/的位置
用于其他也合法

向列表中添加元素
列表名.append(元素) 将元素添加到列表末尾
列表1名.extend(列表2) (列表2,可以用列表名 也可以直接放列表)将列表2添加到列表末尾
列表名.insert(n,元素) 将元素添加到n位处(从0开始),后面的元素自动退一位

从列表中获取元素
可直接用索引值(从0开始的排序序号)
如 列表名[n]
两层列表 列表名[n][m]

删除元素
列表名.remove(元素) 这个元素要在列表中,会删除第一个匹配的元素
del 列表名[n] n为索引值 ,删除该元素后,其他元素前进一位
del 列表名 删除整个列表
列表名.pop(n) 删除列表[n]的元素,并返回这个元素的值,n从0开始,没有n默认为末尾元素

列表分片 (字符串,元组也有)
列表名[n :m:步长] 得到从n(包含)到m(不包含)的元素,,,得到的是原列表的拷贝
忽略n默认从0开始,,忽略m默认到结尾,,带负号为倒数,可都忽略(拷贝整个) 可用于赋值另一个列表

列表比较
从第0个开始比较, 有结果即结束
如 list1=[123,456] list2=[234,123] list1>list2
结果为false或0
若是字符串就比较ASCII码 同理

成员关系运算符 in 与 not in
如 555 in list1 结果为False
123 in list1 结果为true
只能判断一层关系,
如list5=[1,2,[‘kk’,4]] Kk in list5 结果为 false
若两层则 kk in list5[1] 结果为 true

list4= lsit1 + list2 结果为[123,456,234,123] 与拼接类似
list1*3 结果为[123,456,123,456,123,456] 不改变list1
list1 *=3 改变

内置函数
列表名.count(元素) 返回该元素在列表出现的次数 元组可以
列表名.index(元素) 返回第一个出现的该元素的索引值 元组
列表名.index(元素,n,m) 从n开始找到m 返回第一个出现的该元素的索引值
列表名.sort() 将列表元素字母顺序升序排序
列表名.sort(func,key,reverse) func,key是默认的
若 列表名.sort(reverse=True) 将列表元素字母顺序降序排序
列表名.sorted() 与sort用法一样,但是不修改原列表的顺序,返回修改顺序的列表
列表名.reverse() 将列表倒置

若list1= list2 不是拷贝,list1变化list2也变化 相当于指定list2也为list1,是同一个,加个名字而已,让list1指向list2
List1 = list2[ : ] 拷贝 不一起变化

元组(tuple)

元组创建之后不可改变这是与列表最大的区别,内置函数、使用方法很多都一样

创建元组
如 tuple1 =(1,2,3,4,5,6)
或tuple1 = 1,2,,4,5,6 用小括号或不要(逗号是标志),,,,列表用中括号
空元组 tuple1 = ()
只有一个元素的元组 tuple1 = (1,) 后面要加一个逗号

元组更新
如 tuple1 = (‘a’,’b’,‘d’) 要插入c
tuple1 = tuple[ :1] + (‘c’ , ) + tuple1 [1 :]
要删除某个也是这种方法

删除整个元组 del 元组名

元素访问,“元组分片” 拼接(+),重复(*),成员关系运算符,比较,
都与列表一样

字典(dict)

字典相当于映射
创建字典,关键{}
Dict1 = { 1:‘hhh’,2:‘weee‘} #其中1是键(key) hhh是值(value)
Dict2 = {‘ss’:’bb’,’l’:’shjhh’}
空字典 dict3 = {}
Dict4 = dict(((‘a’,78),(‘e‘,99))) 即得到 dict4={‘a’:78,‘e‘:99}
Dict5 = dict (哈哈=‘hhhh‘,哈哈哈=’hh‘) 即得到 dict={哈哈:‘hhhh‘,哈哈哈: ’hh‘}
Dict6.fromkeys((1,2,3),‘Number’) 得到dict6 = {1:‘Number ’,2:‘Number ’,3=‘Number ’}
第二个参数没有时候默认为Nome,常用于初始化(若原本已经有key存在,则清除),其中dict6要原本已经是字典类型

使用字典
是无序的,不能索引,只能用key
Dict1 [1]
Dict1[1]=’jsdjs ‘ 可改变原来的值
Dict1[3]=’ sklahh’ 在dict1中自动创建一个键
字典名.keys() 取键值
如 dict1.fromkeys(range(10),’赞’)
for eachkey in dict1.key():
print(eachkey,end=‘ ’)
结果为 0 1 2 3 4 5 6 7 8 9 10
字典名.values() 取字典值
用法同上
字典名.items() 取整个项即键加值
用法同上 结果为 (0,’赞‘)(1,’赞‘)……

遍历字典
Iii={1=11,2=22,3=44}
如for key,value in iii.items():
这样可以一次便利键和值

字典嵌套
如student1={‘数学‘=111,’语文‘=98}
Student2={‘数学‘=111,’语文‘=98}
Student3={‘数学‘=111,’语文‘=98}
stu={ Student3,Student2,Student1}
for name in stu
print(neme)

示例
#创造30个学生成绩并输出
Stus={}
For I in range(0,30):#制作循环次数
New_stus={‘数学‘=111}
Stus.append(new_stus) #循环一次创造一个学生成绩
For I in stus:
Print(stus)

内置函数
字典名.get(key) 如不存在返回None 否则返回字典值
可以用成员操作符判断key 如 22 in dict1

字典名.clear() 清空字典 (列表也有)
字典名.copy() 复制字典 如a= b 不是复制而是让a b指向同一个字典(列表也有)
字典名.pop(key) 返回原字典中相对应key的值,同时删除这个键
字典名.popitem() 随机返回一个项 形式:(key,值),并删除这个项
字典名.setdefault(key) 若key存在则返回字典值,不存在则自动创建一个,也可指定创建的值(如 字典名.setdefault(key,值)),否则值为None
字典名.update(字典) 用一个字典或映射关系更新另一个字典
如 a={1:11,2:22,3:33} b={3:77}
a. uodate(b)
结果a = {1:11,2:22,3:77}

集合(set)

集合是无序的,不能索引
创建
Num={1,,2,3,4,5} 花括号括起来的值,若不体现映射关系 则为集合
集合的元素是唯一的
若num={1,2,3,4,5,5,4,3,2,1} 重复的值会被忽略
结果为 num ={1,2,3,4,5}
Set1= set([1,2,3,4,5,5])结果 set1={1,2,3,4,5}

不可变集合
Num = frozenset([1,2,3,4,5])

使用

集合名,add(值) 添加值
集合名.remove(值) 删除值

最后

持续更新arduino 树莓派 python 等等
接到有帮助的话 求点赞👍 求关注❤️ 求分享👥
有问题可以评论
点关注,不迷路
如果有任何错误,如何建议,请批评指教,不胜感激 !

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章