[python 基础]3 python 数据类型下篇 (不得不看的字典,列表大总结)

发布于: 2020 年 08 月 16 日
[python基础]3 python数据类型下篇(不得不看的字典,列表大总结)

(ps写了两小时的文档突然断就没了!还有两小时写上就去坐车车了!)上一节中主要学习了数据类型中的数字类型和字符串,忘记的小伙伴可以复习一下哟!这一节将总结列表,字典,集合等!!这部分内容可说处处可用,不管是后续的爬虫,数据分析还是机器学习等,所以小伙伴一起加油呀!



@[toc]

1 python数据类型

2 列表

2.1 列表类型

python列表是任意对象的有序结合,表示方式使用[]。这个"任意"二字,意思是这里面的元素可以是单个字符串,也可以是嵌套的列表,也可以是字典等。



list=["保罗","威少","韦德"]
print(list)
list1=[["保罗儿子","保罗老爸"],"威少","韦德"]
print(list1)
print(list[1])# 威少 这里注意 下标是0开始



2.2 列表的常用方法





小伙伴可以动手尝试下这些方法哟!



#测试remove方法 删除第一次出现的元素
list2=["保罗","威少","韦德","保罗"]
#测试count方法
list2.count("保罗")
print(list2)
#测试remove方法
list2.remove("保罗")
print(list2)
#测试sort方法
list2.sort()
#测试reverse方法
print(list2.reverse())
#测试insert方法
list2.insert(2,"科比")
print(list2)



2.3 列表的切片



>从字面上来说,"切片"(我去现在好饿呀,想吃面包了。。)是一个局部概念,也就是满足从列表中选取一部分元素。



  • 表示方法



使用的是":",我们举个例子



list3=[1,2,3,4,5,6,2,1]
print(list3[0:1])#1 记住之前说好的第一个元素下标是0哟



取出从左到右的前三个数,我们将":"放在前面



print(list3[0:3])#前三个数
print(list3[:3])#前三个数 注意这里“:”放在了前面



我们将“:”放在X后面会出现什么情况?将输出X到末尾元素



print(list3[3:])#[4, 5, 6, 2, 1]



上面我们的取值都是正数,如果是负数呢?



print(list3[-3])#6
print(list3[-3:])#[6,2,1]
print(list3[:-3])#[1, 2, 3, 4, 5]



小结:我们可以通过将":"放在X的不同位置进行取值,通知X可以是负数也可以是正数。



2.4 列表的简单应用



  • 列表作为栈



什么是栈?,特点为<font color='red'>先进后出</font>,生活中的场景就是:我们叠盘子的时候,从下往上放,先放在下面的一般来说都会后取出来,这就是典型的栈结构。那么在算法中常用的比如二进制转换,二叉树的非递归先序遍历等



那我们思考怎么用列表来表达呢?使用append在最后加入元素,然后使用pop弹出来就好了。



#列表作为栈
stack=[1,2,3]
stack.append(4)
stack.append(5)
print(stack.pop())#5
print(stack.pop())#4
print(stack.pop())#3



  • 列表作为队列



队列作为栈的兄弟,特点不同才能更好的相处,而且正好相反为<font color='red'>先进先出</font>。就好比我们排队买火车票的场景。



#列表作为队列
from collections import deque
deque1=deque(['威少',"保罗","库里"])
deque1.append("小库里")
deque1.append("里弗斯")
print(deque1.popleft())#威少
print(deque1.popleft())#保罗



3 元组



3.1 元组类型



元组的表示方式为"()",元素之间使用逗号分开。而且非常重要的是它里面的元素是不能修改的。比如



tuple=('威少',"保罗","哈登")
print(tuple)
#tuple([1])="库里"



3.2 元组常用方法



列表中的方法元组基本都可以使用。切片也好使。



print(tuple)
print(tuple[:2])#('威少', '保罗')
print(tuple[2:])#('哈登',)
print(tuple[-1:])#('哈登',)



3.3 元组的应用场景



  • 元组的赋值(有多少个元素就有多少个变量来接收)



t = ('威少', "保罗", "库里")
name1, name2,name3 = t
print(name1, name2,name3)#威少 保罗



  • 元组排序



方法一:直接使用函数



scores = (100,20,30,42,78)
scores_sort=sorted(scores)# 默认为升序
print(scores_sort)#[20, 30, 42, 78, 100] 输出为列表



方法二:转换为列表再排序



scores = (100,20,30,42,78)
scores_list=list(scores)
scores_list.sort()
print(scores_list)#[20, 30, 42, 78, 100]



  • 分割元素为三部分输出



scores = (100,20,30,42,78)
minscore,*middlescore,maxscore=scores
print(minscore)#100
print(middlescore)#[20, 30, 42]
print(maxscore)#78



4 集合



4.1 集合类型



集合是一个<font color="blue">无序不重复</font>的序列。无序也就意味着不能通过数字进行索引。通常使用set()函数来创建,或者大括号"{}".



#集合
age={18,17,18,12,13}
print(age)#{17, 18, 12, 13}
age1=set([18,17,18,12,13])
print(age1)#{17, 18, 12, 13}



4.2 集合常用方法



  • 集合的内置函数



  • 代码实践



nbaPlaer={'库里','汤普森','詹姆斯'}
#添加
nbaPlaer.add("科比")
print(nbaPlaer)
#update可迭代对象
nbaPlaer.update("abcd")
print(nbaPlaer)
#集合的删除 set.remove(key),元素(键)必须存在于集合中,否则会报错。无返回值
nbaPlaer.remove("a")
#清空
nbaPlaer.clear()
numbers1 = {1,7,3,4,5}
numbers2 = {3,4,2,6,7}
# 对两个集合进行交集运算
numbers_inter = numbers1 & numbers2
print(numbers_inter)# {3,4,7}
# 对两个集合进行并集运算
numbers_union = numbers1 | numbers2
print(numbers_union)#{1, 2, 3, 4, 5, 6, 7}



4.3 集合的应用场景



  • 运用集合去重



list5={2,2,2,2,4}
set1=set(list5)
print(list5){2, 4}



  • 集合关系判定



>这里也就是上面所说的交集,并集,差集,父子集判断



5 字典



5.1 字典类型



字典可存储任意类型对象,用{}标识。字典由一个无序的键(key)值(value)对的集合。



dic={key1:value1,key2:value2}



5.2 字典4种创建方法



  • 使用大括号的方式创建字典



#创建方式1
nab_player_msg = {"name": "库里", "age": 30}



  • 使用关键字参数和类型构造函数来创建字典



#创建方式2
nab_player_msg1 = dict(name = "库里", age = 30)



  • 使用zip函数将名字和值连接构成字典



#创建方式3
keys=["name",age]
values=["库里","30"]
nab_player_msg2 = dict(name = "库里", age = 30)



  • 使用fromkey通过一个键序列和所有的键的额可选初始值来创建字典



#创建方式3
keys=["name",age]
nab_player_msg3=dict.fromkeys(keys,"?")



5.3 字典的常用遍历方式



  • 通过遍历key值遍历字典



#创建方式1
nab_player_msg = {"name": "库里", "age": "30"}
#字典遍历方式1 通过key
for key in nab_player_msg:
print(key+":"+nab_player_msg[key])



  • 通过items遍历字典



for k,v in nab_player_msg.items():
print(k+":"+v)



  • 通过zip遍历字典



for k,v in zip(nab_player_msg.keys(),nab_player_msg.values()):
print(k+":"+v)



5.4 字典的应用场景



  • 使用多个键值对,存储描述一个对象更加复杂的数据信息

  • 嵌套的字典



Big_plaer = {
'美国':{
'科比':['得分后卫','牛掰'],
'保罗':['控球后卫','稳']
},
'大陆':{
'姚明':['中锋','霸气']
}
}
print(Big_plaer)
for i in Big_plaer:
print(i,Big_plaer[i])

6 总结



不知道你们看完有一点点收获吗?如果有收获希望你



1. 点赞 给予我更多鼓励同时让更多人学习

2. 关注我公众号[我是程序员小贱]获取更多的干货。相信我不会让你们失望!



发布于: 2020 年 08 月 16 日 阅读数: 23
用户头像

公众号【我是程序员小贱】干货分享 2019.10.15 加入

计算机小硕,热爱分享

评论

发布
暂无评论
[python基础]3 python数据类型下篇(不得不看的字典,列表大总结)