Python set集合 dict字典 简介

set

可变 无序  不重复 的元素的集合 非线性

s={}  定义空字典

定义空Set
s=set()

set dict list  bytearray不能hash

set元素不可以索引 可以迭代

set.add(value)  添加单个元素
set.update(iterable)
set.remove(value) 删除 keyerror
set.discard(value) 删除 无值不报错
set.pop()随机弹出
set.clear()清空setset
无修改方法

线性结构查询时间复杂度On
set dict等可做到O(1)

in 和 not in 判断元素是否在set中

集合运算

  • 并集

union(*others)返回多个集合合并后的新集合
updates(*others)多个集合合并 就地就该

|等同union 返回新的 
|=等同update  就地修改

  • 交集

intersection(*others)返回多个集合的交集
intersection_update(*others)获取多个集合的交集并就修改

&等同intersection
&=等同intersection_update

  • 差集

difference(*others)返回和多个集合的差集
differenc_update(*others)返回和多个集合的差集并就地修改

-等同difference
-=等同differenc_update

  • 对称差集(等于两个集合的并集减交集)

symmetric_difference(other)返回和另一个集合的差集
symmetric_difference_update(other)返回和另一个集合的差集并就地修改

^等同symmetric_difference
^=等同symmetric_difference_update

字典dict

key-value键值对的数据的集合
可变 无序 key不重复 key必须和hash

定义 初始化

d={} d=dict()
dict(**kwargs)使用key=value键值对初始化一个字典
dict(iterable,**kwargs)使用可迭代对象和kv键值对狗仔字典,但是可迭代对象的元素必须是一个二元结构
dict(mapping,**kwargs)使用一个字典构建另一个字典,如果**kwargs键值对和映射过来的字典的key重复,则覆盖对应value
d={‘a’:10,‘b’:20}直接定义
类方法dict.fromkeys(iterable,[value])如果没有value则所有key的对应值为NONE,如果有value则所有的key对应值为value

dict[k]
返回key对应值value,无key则报错keyerror

dict.get[key,[default]]
返回key对应值value,key不存在则返回缺醒值,若没有设置缺醒值则返回NONE

dict.setdefault(key,[default])
返回key对应值value,若key不存在则添加键值对,若没有设置缺醒值则为NONE

dict[key]=value
将key对应值修改为value,若key不存在则添加新的键值对

dict.update([other])
使用另一个字典的kv对更新本字典
key不存在就添加
key存在则覆盖对应value
就地修改

dict.pop(key,[default])
key存在则移除并返回对应value
key不存在则返回设置的default
default未设置且key不存在则报错keyerror

dict.popitem()
移除并返回一个任意的键值对(元祖)
若字典为空则报错Keyerror

dict.clear()
清空字典

del dict[key] 将对应的kv对从字典移除 对应value的引用计数减一

for key in dict(=dict.keys())
遍历的是key

for i in dict.items():
print(i)
打印出的是kv键值对元祖

容器一般使用for循环

等价

import collections
d=collections.defaultdict()

from collections import defaultdict
d=defaultdict()

当key不存在的时候,根据defaultdict(type)的类型构造一个空类型value

from collections import OrderedDict
key有序字典 会根据放入元素的先后顺序进行排序
OrderedDict对象的字典对象,如果其顺序不同那么Python也会把他们当做是两个不同的对象

3.6版本Python的字典就是记录key插入顺序

标准库datetime

datetime模块

datetime类
类方法
today()返回本地时区当前时间的datetime对象
now(tz=None)返回当前时间的datetime对象 时间到微秒 ,如果tz为None,返回和today()一样
utcnow()没有时区的当前时间
fromtimestamp(timestamp,tz=None)从一个时间戳返回一个datetime对象

datetime对象
timestamp()返回一个到微秒的时间戳
时间戳:从格林威治时间1970.1.1 00:00到现在的秒数

构造方法
datetime.datetime(Y,m,d,H,M,S,微秒)

weekday()返回星期的天 周一0周日6
isoweekday()返回星期的天 周一1周日7
date()返回日期date对象
time()返回时间time对象
replace()修改并返回新的时间
isocalendar返回一个三元组(年,周数,周的天)

日期格式化
类方法strptime(date_string,format),返回datetime对象
对象方法strtime(format)返回字符串
字符串format函数格式化

timedelta对象
=两个datetime对象相减

构造方法
datetime.timedelta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)
year=datetime.timedelta(day=365)

total_seconds()返回时间差的总秒数

time模块

time.sleep(secs)将调用线程挂起指定的秒数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值