day09数据类型及内置方法

本文深入探讨了Python中字典和集合的使用方法,包括字典的创建、操作、类型转换,以及集合的构建、类型转换和集合运算,如交集、并集、差集等,为Python开发者提供了实用的代码示例。

t = (1)
print(t,type(t))


"""
推荐你们在使用容器类型的元素的时候
如果该容器类型只有一个元素 那么你也习惯性的
将逗号加上
t = (1,)
l = ['jason',]
"""

d = dict(username='jason', age=18)
print(d)  # {'username': 'jason', 'age': 18}

类型转换
d1 = dict([['username','password'],('jason',123)])
print(d1)  # {'username': 'password', 'jason': 123}

操作方法
取值
"""
字典默认暴露给外界的可操作的只有字典的key
字典是无需的 根本没有索引一说

程序员第一准则
    能少写一个字母绝对不多写一个
"""
d = {'username': 'jason', 'password': 123}
print(d['username'])  # 不推荐使用该方法
print(d['xxx'])  # KeyError: 'xxx'

1 get方法
res = d.get('username')
print(res)  # jason
res = d.get('xxx')
print(res)  # None  键不存在会返回None 不会报错

res = d.get('username', '你搞什么飞机 这个键不存在 去你妹啊')
print(res)  # 键存在还是返回对应的值
res = d.get('xxx', '你搞什么飞机 这个键不存在 去你妹啊')
print(res)  # 键不存在 返回get方法里面第二个参数

字典新增键值对
方式1
d['hobby'] = 'study'  # 字典的key不存在新增
print(d)
d['username'] = 'egon'
print(d)  # 字典的key存在则修改
方式2
d.update(username='jason')
print(d)  # 特点同上
方式3
"""
键如果存在的情况下 那么不做修改 而是将对应的value取出
键如果不存在的情况下 那么就是新增
"""
d.setdefault('xxx',123)
print(d)  # 键不存在是新增
res = d.setdefault('username',123)
print(d)  # {'username': 'jason', 'password': 123}
print(res)  # jason

快速构造字典
res = {}.fromkeys(['k1','k2','k3'],[])
# print(res)  # {'k1': [], 'k2': [], 'k3': []}
res.get('k1').append(123)
print(res)
"""
A
{'k1': [123], 'k2': [], 'k3': []}
B
{'k1': [123], 'k2': [123], 'k3': [123]}
C
报错
D
我TMD的也不知道
"""
弹出
res = d.pop('username')  # 将括号内指定的key对应的value弹出
print(d,res)  # jason
res1 = d.popitem()  # 将弹出的键值对组织成元组的形式返回出去
print(d,res1)  # {'username': 'jason'} ('password', 123)


字典方法三剑客
print(d.keys())  # 获取字典所有的key
print(d.values())  # 获取字典所有的value
print(d.items())  # 获取字典所有的key和value组织成小元组
"""
可以直接只看里面的数据结构
dict_keys(['username', 'password'])
dict_values(['jason', 123])
dict_items([('username', 'jason'), ('password', 123)])
"""
for key in d.keys():
    print(key)
for value in d.values():
    print(value)
for item in d.items():
    print(item)
for k, v in d.items():
    print(k,v)

清空
d.clear()
print(d)

__class__  # 双下class

s = {1,2,3,4,5,6,7,8}
print(type(s))

s1 = {}
d1 = {}
print(type(s1),type(d1))  # <class 'dict'> <class 'dict'>
# 定义空集合一定要用set关键字
ss = set()
print(ss,type(ss))  # set() <class 'set'>


s = {1,1,1,2,3,3,4,3,2,3,4,6,5,3,}
print(s)
类型转换
s1 = set('egon is o DSB')
print(s1)
s2 = set([1,2,3,4,5,6,7,7,7,7,7])
print(s2)
s3 = set({'username':'jason','password':123})
print(s3)  # {'password', 'username'}
l = [4,3,2,3,4,6,7,8,1,2,3]
# 先转成集合
s = set(l)
# 再转成列表
l1 = list(s)
print(l1)
new_l = []
for i in l:
    if i not in new_l:
        new_l.append(i)
print(new_l)


用户1的好友列表
friends1 = {'jason','tank','tony','jerry'}
用户2的好友列表
friends2 = {'jason','tony','owen','oscar'}

1 求两个用户的共同好友  交集
res = friends1 & friends2
print(res)  # {'jason', 'tony'}
2 求两个用户所有的好友
res = friends1 | friends2
print(res)  # {'jerry', 'jason', 'oscar', 'tony', 'tank', 'owen'}
3 求用户1独有的好友
res1 = friends1 - friends2
res2 = friends2 - friends1
print(res1,res2)  # {'jerry', 'tank'} {'owen', 'oscar'}
4 求两个用户各自独有的好友            对称差集
res = friends1 ^ friends2
print(res)  # {'owen', 'jerry', 'tank', 'oscar'}
5 子集 父集
s1 = {12,3,4,5,6}
s2 = {12,6}
print(s1 > s2)  # s1是否是s2的父集
print(s2 < s1)  # s2是否是s1的子集
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值