Python的数据类型的内置方法
- 可变与不可变数据类型
- 字典的内置方法
- 元组的内置方法
- 集合的内置方法
可变与不可变数据类型
常见的数据类型
常见的数据结构类型:链表、单链表、双链表、循环列表、(C实现的 指针)、栈、树、二叉树、平衡二叉树、完全二叉树、b树、b+树、b-树等、队列、图等
在Python中,没有值传递还是引用传递一说,都说可变类型与不可变类型
不可变数据类型
不可变类型:str、int、float
特点:值改变了,内存地址也改变、其实改变的不是原值、而是改变之后又生成一块空间来保存新值
可变数据类型
可变类型: list、dict、
特点:值改变了,内存地址没有改变,其实改变的是原值,只要你改变了值,原来的值就会发生变化
字典的内置方法
定义
# 定义:在{}内用逗号分隔开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key则必须是不可变类型,通常key应该是str类型,因为str类型会对value有描述性的功能
info={'name':'tony','age':18,'sex':'male'} #本质info=dict({....})
# 也可以这么定义字典
info=dict(name='tony',age=18,sex='male') # info={'age': 18, 'sex': 'male', 'name': 'tony'}
ic = {
'name': 'xxx',
'age': 18,
'hobby': ['play game', 'basketball']
}
取值
# 1. 取值
# print(ic['name'])
# print(ic['age'])
# print(ic['hobby'][1])
转换
转换1:
info=dict([['name','tony'],('age',18)])
print(info)
# 转换2:fromkeys会从元组中取出每个值当做key,然后与None组成key:value放到字典中
print({}.fromkeys(('name','age','sex'),None) )
重点
# 赋值操作
'''如果key已经在字典中存在,那么,就是对原来的值进行修改,如果不存在key值,就是新增一个键值对'''
dic = {
'name': 'xxx',
'age': 18,
'hobby': ['play game', 'basketball']
}
dic['gender'] = 'male' # {'name': 'xxx', 'age': 18, 'hobby': ['play game', 'basketball'], 'gender': 'male'}
# dic['name'] = 'jerry' # {'name': 'jerry', 'age': 18, 'hobby': ['play game', 'basketball'], 'gender': 'male'}
# print(dic)
#3.长度len
print(len(dic))
#4.成员运算
in和not in#判断某个值是否在字典key
print('name' in dic)
True
#5删除pop#通过字典的key来删除字典对应的键
print(dic.pop('name'))
字典三剑客:keys() values() items()
# print(dic.keys()) # dict_keys(['name', 'age', 'hobby'])
#
# for i in dic.keys():
# print(i)
'''values方法把字典中得所有的value值组织成一个列表'''
# print(dic.values()) # dict_values(['xxx', 18, ['play game', 'basketball']])
#
# for i in dic.values():
# print(i)
print(dic.items()) # dict_items([('name', 'xxx'), ('age', 18), ('hobby', ['play game', 'basketball'])])
# for i in dic.items(): #
# print(i[0], i[1]) # ('name', 'xxx')
for i, j in dic.items(): #
print(i , j) # ('name', 'xxx')
需要掌握
需要掌握的操作:
#1.get取值
# print(dic.get('name')) # xxx
# print(dic.get('age')) # xxx
# print(dic.get('hobby')) # xxx
# print(dic.get('name1')) # None
'''get方法获取key不存在的时候,不会报错,会返回None,另外,还可以设置默认值'''
# print(dic.get('name1', 666)) # 666
"""以后字典取值推荐使用get方法,中括号取值是可以用的"""
#2. 随机删除一组键值对,并将删除的键值放到元组内返回
# print(dic.popitem()) # ('hobby', ['play game', 'basketball'])
# print(dic.popitem()) # ('hobby', ['play game', 'basketball'])
# print(dic) # {'name': 'xxx', 'age': 18}
# 3.update()
'''如果key值存在,则为修改,如果不存在,则为添加'''
# dic.update({'name': "jerry", 'gender': 'male'}) # 要记忆
# print(dic) # {'name': 'jerry', 'age': 18, 'hobby': ['play game', 'basketball'], 'gender': 'male'}
# 4初始化变量
dic = dict.fromkeys(['k1','k2','k3'],[])
dic = dict.fromkeys(['k1','k2','k3'],[666]) # {'k1': [666], 'k2': [666], 'k3': [666]}
dic = dict.fromkeys(['k1','k2','k3'],[666, 888]) # {'k1': [666, 888], 'k2': [666, 888], 'k3': [666, 888]}
print(dic) # {'k1': [], 'k2': [], 'k3': []} # 初始化变量
print(dic['k1'])
print(dic['k2'])
print(dic['k3'])
dic = {
'name': 'xxx',
'age': 18,
'hobby': ['play game', 'basketball']
}
'''setdefault:如果key值存在,则直接获取key对应的value值,如果不存在,就返回第二个参数的值'''
print(dic.setdefault('name', 666)) # xxx
print(dic.setdefault('name1', 666)) # 666