集合&元组&字典

集合set:集合底层使用的hash算法

特点:无序、不能重复
定义集合:

s={至少要有一个元素}    不推荐使用这种方式
s=set()			得到一个集合
s=set([列表])	将列表转换为一个集合
s=set({集合})	初始化集合

常见的方法
在这里插入图片描述

add()		添加元素
clear()		清空元素
copy()		浅拷贝对象
pop()		任意弹出元素
remove()	删除对应的元素,如果没有该元素,会报错
union()		求两个集合的并集  
difference()求两个集合的差集
intersection()求两个集合的交集
discard()	删除对应的元素,如果没有该元素,则没有影响

一行代码完成list 的去重

利用集合的自动去重功能去重,缺点是:使用set方法无法保证去重后的顺序
li=[1,2,3,4,5,1,2,3]
li=list(set(li))
print(li)
但是可以利用列表中索引(index)的方法保证去重后的顺序不变
li=[1,2,3,4,5,1,2,3]
new_li=list(set(li))
new_li.sort(key=li.index)
print(new_li)

元组(不可变类型)

元组就是一组固定的值
元组的定义:
变量名称=(值1,值2,)
变量名称=tupe([列表])
变量名称=tupe([集合])
在这里插入图片描述
注意:python使用逗号分别元素与元组的差别
t2=(2) 和 t3=(2,)的区别
在这里插入图片描述

  • 方法:
index()	显示元素的下标位置
count()	统计元素的个数

在这里插入图片描述
注意:如果元组存在可变类型,该可变类型是可以修改的


dict(字典)

{k:v,k1:v2,}
定义:
	d={"age":16,"name":"laowang","address":"xi'an"}
	d2=dict({'a':100,'b':200})
	dict[key]  得到对应的值,如果key不存在,则抛出错误
	dict[key]=新值	也可以赋值
>>> d={"age":16,"name":"laowang","address":"xi'an"}
>>> d
{'age': 16, 'name': 'laowang', 'address': "xi'an"}
>>> type(d)
<class 'dict'>
>>> d['age']
16
>>> d['address']
"xi'an"
>>> dir(d)
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', 
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', 
'__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', 
'__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 
'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 
'values']

在这里插入图片描述

  • 常用方法
clear()
copy()
values()	获取字典的所有值
keys()		获取字典的所有键
item()		成对获取键值对,主要用于迭代dict
get(key)	返回key对应的值,注意,如果key不存在,则返回none
pop(key)	根据key,移除对应键值对
popitem()	从最后移除一个键值对

迭代字典

d={"age":16,"name":"laowang","address":"xi'an"}
for i in d():
	print(i,d[i])
这两个是一个操作
for i in d.keys():
	print(i,d[i])

for k,v in d.items():
	print(k.v)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值