python基本数据内置方法(完)

引言

   小伙伴们,昨天我们已经讲了一部分的基本数据类型内置方法了,今天让我们继续探索剩下的数据类型的内置方法吧,冲冲冲!!!

字典

   给大家回顾一下字典的定义吧,字典是花括号里面有一个或多个元素,元素之间用逗号隔开,里面的每个元素都是一个键值对。键必须是不可变类型的,由于键主要是用于描述值的,常见用字符串。值可以是任意的数据类型。

类型转换

   字典中的类型转换也可以称作字典的新创建方式。

dict_one = dict[['name', 'king'], ['age', 18], ['gender', 'male'], ['hobby', 'game']]
dict_two = dict(name='king', age=18, gender='male', hobby='game')

按key取值

   字典中的值只能通过键来获取。

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
dict_three['name']  # king
dict_three['country']  # 报错,因此我们一般取值不用key取值

get方法取值

   如果取值时字典中没有我们想要的键,那么就要能够不报错,使用get就能很好的做到这一点,还可以自己设置没有键时返回的字符串。

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
dict_three.get('name')  # king
dict_three.get('country')  # None 默认为None
dict_three.get('country', '没有该数据')  # 没有该数据

修改值

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
dict_three['name'] = 'mill'  # 如果键存在,那么就是修改字典中键所指向的值

新增键值对

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
dict_three['country'] = 'China'  # 如果键不存在,那么就是新增键值对

长度

   用于计数字典中键值对的个数。

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
print(len(dict_three))  # 4

成员运算符

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
print('name' in dict_three)  # True 只能判断键

删除

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
del dict_three['name']  # 通用删除
dict_three.pop('age')  # 弹出指定的键所对应的值,弹出的值可以使用,当不使用了,python会自动帮你删除
dict_three.popitem()  # 随即弹出一个

取出所有元素

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
print(dict_three.values())  # dict_values(['king', 18, 'male', 'game'])  取出所有值,可以看成是列表
print(dict_three.keys())  # dict_keys(['name', 'age', 'gender', 'hobby'])  取出所有值,可以看成是列表
print(dict_three.items())  # dict_items([('name', 'king'), ('age', 18), ('gender', 'male'), ('hobby', 'game')])  取出所有的键值对,可以看成是列表

update

dict_three = {'name': 'king', 'age': 18, 'gender': 'male', 'hobby': 'game'}
dict_three.update('name': 'mill', 'country': 'China')  # 键存在就是修改值,键不存在新增键值对

fromkeys()

dict_three = dict.fromkeys(['k1', 'k2', 'k3'], [])  # {'k1': [], 'k2': [], 'k3': []}
'''
注意了,这里面一个键所对的列表添加一个元素,其他的键所对应的列表也添加相同的元素,因为这三个键所对的值是同一个列表。

setdefault()

dic = {'k1': 111, 'k2': 222}
dic.setdefault('k3': 333}  # 如果键不存在,在字典中新增一个键值对,并且返回新增的值
dic.setdefault('k1': 444}  # 如果键存在,字典不变,返回字典中键对应的值

元组

   元组的定义是小括号内有一个或多个元素,元素之间用逗号隔开,元素正常情况下只能看不能改。如果只有一个元素,那元素之后一定要加个逗号,不然小括号会被认为是包含的作用。

类型转换

   元组的类型转换只能转换支持for循环的。

tuple('dsasads')  # ('d', 's', 'a', 's', 'a', 'd', 's')
tuple({1,2,3,4,5,6})  # (1, 2, 3, 4, 5, 6)
tuple([1,2,3,45,6])  # (1, 2, 3, 45, 6)
tuple({'name': 'king'})  # ('name',)

基本操作

   基本操作基本和列表没区别,这里直接代码展示算了。

set_one = (1, 3, 7, 8, 9, 12, 15, 78, 99, 1)
set_one[0]  # 1
set_one[1:3]  # (3, 7)
set_one[1:8:2]  # (3, 8, 12, 78)
len(set_one)  # 9
print(1 in set_one)  # True
set_one.count(1)  # 2
set_one[0] = 2  # 报错,元组中的元素正常情况下只能看不能改

集合

   集合的定义,集合是花括号内一个或多个元素,只不过这个元素不是键值对,元素可以是任意数据类型,集合是无序不重复的序列。到目前为止我们可以这样子理解,带花括号的都是无序序列。

类型转换

   集合的类型转换只能转换能被for循环的数据类型。

set({'name':'king')  # {'name',}
set((1, 2, 3, 4, 5, 6, 7))  # {1, 2, 3, 4, 5, 6, 7}
set('sdadaads')  # {'d', 's', 'a'}
set([1,5,6,8,4])  # {1, 4, 5, 6, 8}

关系运算

f1 = {'king', 'tom', 'jack', 'fake'}
f2 = {'jason', 'kiven', 'jack', 'tom'}
# 共同好友
print(f1 & f2)  # {'jack', 'tom'}
# f1独有的好友
print(f1 - f2)  # {'king', 'fake'}
# 全部好友
print(f1 | f2)  # {'king', 'kiven', 'tom', 'jack', 'fake', 'jason'}
# 各自好友
print(f1 ^ f2)  # {'fake', 'jason', 'king', 'kiven'}

垃圾回收机制

   python底层对空间的申请和释放都是设计好的,不需要程序员自己动手。

引用计数

   python会将引用计数为0的数据清除,计数就是内存中数据绑定的变量名的个数。

标记清除

   当内存空间快溢出的时候,python就自动启动应急机制。停止程序的运行,挨个检查值的引用计数,找出计数为0的值,一次性清理掉。

分代回收

   根据值存在时间长短分为3个层(1,2,3)。

第一层 每5秒钟系统自动检测一次
第二层 每1分钟系统自动检测一次
第三层 每5分钟系统自动检测一次
posted @ 2022-03-10 17:44  小金同学要加油  阅读(79)  评论(0)    收藏  举报