字典 dict

可变的、无序的、key不重复,key可哈希

定义方式

d1 = dict()
d1 = {}
d1 = {1:1,'2':2,'a':[3,4]}
d1 = dict([1,2),['a',300],{10,2}]) 必须是二元,{}key碰机会
d1 = dict(a=1,b=2,c=3)
d2 = dict(d1,f=100)

dict.fromkeys(range(10),'abcd')

查找

d1.get(1,2):不会报错,没有返回none
d1.setdefault(9,1000):#返回key对应的value
#如果没找到自动创建k-v对并打印值

增加

d1.update ({1:100,2:200}) #已存在就覆盖,不存在添加
d1.update(((3,300),),a = 'abc')

删除

d8.pop(key[,d]) #没有会报错,输入缺省值(返回值d)可以不报错
d8.popitem() #随机移除一个任意的键值对
d8.clear() #清空
del d8[key] #移除对应的k-v对

遍历(for循环)

for k in d5: #遍历key
print(k)

for k in d5.keys(): #遍历key(推荐这种,明确)
print(k)


for v in d5.values(): #遍历value
print(v)

for k in d5: #遍历value
print(d5[k])

for k in d5.keys():
print(d5.get(k)) #遍历value


for item in d5.items(): #item:k-v,entry 遍历k-v对
print(item)


for item in d5.items(): 遍历k-v对
print(item[0],'~~~',item[1])

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

遍历删除:

先创建列表记录key,再遍历列表使用pop删除,不能直接遍历pop删除


创建工厂方法缺省字典

from collections import defaultdict
import random

d1 = defaultdict(list) #value 构造为list
for k in 'abcde':
for v in range(random.randint(1,5)):
d1[k].append(v)
print(d1)


form collections import OrderedDict
OrderedDict() #3.6以前使用,记录k-v对插入顺序
d1 = OrderedDict()

python解析式、生成器

标准库datetime

import datetime #导入模块

datetime模块

类方法today()返回本地时区当前时间的datetime对象

时间测试:

start = datetime.datetime.now()
delta = (datetime.datetime.now() - start).total_seconds()


datetime.datetime.now() #返回一个时间的对象
datetime.datetime.fromtimestamp(1554798579) #按照时间戳计算当前时间
d.timestamp() #返回一个当前时间戳

d.isoweekday() #调用当前星期
d.date() #调用当前日期
d.time() #调用当前时间

strptim() #将str返回到datetime对象,解析实践对象

strftime(format) ,返回字符串

例;
d6 = datetime.datetime.strptime("2009,5,3,16,29,39",%y,%m,%d,%h,%m,%s)

标准库time

import time
time.sleep(5) #睡眠5秒后执行,将当前线程阻塞