字典的内置方法
# 1.类型转换
转换1:dict1 = dict(['name','tony'],('age',18))
print(dict1)
输出结果: {'name':'tony','age':18}
#fromkeys 会从元组中取出每个值当做key,然后与AA组成K:V放到字典中
转换2:dict2 = {}.fromkeys(('name','age','sex'),'AA')
print(dict2)
输出结果:{'name':'AA','age':'AA','sex':'AA'}
d1 ={
'name':'zhangqiang',
'age':18,
'hobbies': ['play game', 'basketball']
}
# 2.按key取值:
"""不推荐次方法"""
print(d1['name']) #jason
print(d1['xixi']) #键不存在会直接报错
"""推荐的方法"""
print(d1.get('add','这个键不存在')) # 第二个参数不写默认返回None 写了则返回写了的
print(d1.get('name','这个键不存在')) # 如果键存在 则不需要使用到第二个参数
# 3.修改值 字典也是可变类型
d1['name'] = 'jasonDSB' # 键存在是修改值
# 4.添加键值对
d1['pwd'] = 123 # 键不存在则是新增一个键值对
print(d1)
# 5.统计字典中键值对的个数
print(len(d1)) # 3
# 6.成员运算 也只能判断key而已
print('jason' in d1) # False
print('name' in d1) # True
# 6.删除键值对
del d1['name'] # 通用的删除方式
print(d1) # {'age': 18, 'hobbies': ['play game', 'basketball']}
print(d1.pop('age')) # 18 弹出
print(d1) # {'name': 'jason', 'hobbies': ['play game', 'basketball']}
d1.popitem() # 随机弹出一个(使用频率很低 可以忽略)
print(d1)
2.按key取值
"""不推荐次方法"""
print(d1['name']) #jason
print(d1['xixi']) #键不存在会直接报错
"""推荐的方法"""
print(d1.get('add','这个键不存在')) # 第二个参数不写默认返回None 写了则返回写了的
print(d1.get('name','这个键不存在')) # 如果键存在 则不需要使用到第二个参数
3.修改值
d1['name'] = 'jasonDSB' # 键存在是修改值
4.添加键值对
d1['pwd'] = 123 # 键不存在则是新增一个键值对
5.统计字典中键值对的个数
print(len(d1)) # 3
6.成员运算 也只能判断key而已
del d1['name'] # 通用的删除方式
print(d1) # {'age': 18, 'hobbies': ['play game', 'basketball']}
print(d1.pop('age')) # 18 弹出
print(d1) # {'name': 'jason', 'hobbies': ['play game', 'basketball']}
d1.popitem() # 随机弹出一个(使用频率很低 可以忽略)
print(d1)
7.获取所有的键 所有的值 所有的键值对
1.获取键
print(d1.keys()) # dict_keys(['name', 'age', 'hobbies']) 可以看成是列表
2.获取值
print(d1.values()) # dict_values(['jason', 18, ['play game', 'basketball']]) 可以看成是列表
3.获取键值对
print(d1.items()) # dict_items([('name', 'jason'), ('age', 18), ('hobbies', ['play game', 'basketball'])])
元组的内置方法
1、类型转换
#支持 for 循环的数据类型都可以转成元组
# 除整型int、浮点型float、布尔值bool 以外的都可以
# print(tuple(11)) # 报错
# print(tuple(11.11)) # 报错
print(tuple('jason'))
print(tuple([11,22,33,44]))
print(tuple({'name':'jason'}))
print(tuple({11,22,33,44}))
# print(tuple(True)) # 报错
2、元组的特性
t1 = (11, 22, 33, 44)
print(type(t1)) # <class 'tuple'>
t2 = (11)
print(type(t2)) # int
t2 = (11.11)
print(type(t2)) # float
t2 = ('jason')
print(type(t2)) # str
"""当元组内只有一个元素的时候 一定要在元素的后面加上逗号"""
3、进索引取值
t1 = (11, 22, 33, 44, 55, 66)
print(t1[0]) # 11
print(t1[-1]) # 66
4、切片操作
t1 = (11, 22, 33, 44, 55, 66)
print(t1[1:4]) # (22, 33, 44)
print(t1[-1:-4:-1]) # (66, 55, 44)
print(t1[-4:-1]) # (33, 44, 55)
5、统计元组内元素的个数
print(len(t1)) # 6
6、成员运算
print(11 in t1) # True
7、统计某个元素出现的次数
print(t1.count(22))
8、元组内元素不能"修改": 元组内各个索引值指向的内存地址不能修改
t1[0] = 111
集合内置方法
#定义:在{ }内用逗号分隔开多个元素,集合具备以下三个特点:
每个元素必须是不可变类型
集合内没有重复的元素
集合内元素无序
#注意1:
列表类型是索引对应值,字典是key对应值,均可以取得单个指定的值,而集合类型既没有索引也没有key与值对应,所以无法取得单个的值,而且对于集合来说,主要用于去重与关系运算,根本没有取出单个指定值的这种需求。
#注意2:
{ }既可以用于定义字典,也可以用于定义集合,但是字典内的元素必须是key:value键值对的格式
1、类型转换
- 支持 for 循环的数据类型都可以转成集合,并且集合内元素只能是不可变类型
- 两大功能:
1). 去重:集合内不能出现重复的元素(自带去重特性),如果出现了 会被集合自动去重
2).关系运算:判断两个群体内的差异,就好比如我们之间的共同好友、共同关注、共同点赞之类的
print(set(11)) # 报错
print(set(11.11)) # 报错
print(set('jason'))
print(set([11,22,33,44]))
print(set({'name':'jason'}))
print(set((11,22,33)))
print(set(True)) # 报错
# 去重操作,去除了重复但是打乱了顺序
l = ['a', 'b', 1, 'a', 'a']
print(set(l)) # {1, 'a', 'b'}
2、关系运算
f1 = {'jason', 'kevin', 'tony', 'jerry'} # 小李的好友列表
f2 = {'jason', 'tom', 'jerry', 'jack'} # 小王的好友列表
# 1.求两个人的共同好友
print(f1 & f2) # {'jerry', 'jason'}
# 2.求小李的单独好友
print(f1 - f2) # {'kevin', 'tony'}
# 3.求两个人所有的好友
print(f1 | f2) # {'kevin', 'jack', 'tom', 'jason', 'jerry', 'tony'}
# 4.求两个人各自的好友
print(f1 ^ f2) # {'jack', 'tony', 'tom', 'kevin'}