快捷键复习
alt + enter 导入需要的模块。
alt + r 替代
ctrl+ / 注释
ctrl + shitf + F 项目内查找关键字
ctrl + f 文件内查找关键字
字符串的方法复习
find 查找
replace 替代
split 分割
"".join 插入
format 格式化
startwith 检查字符串是否是以 obj 开头 False
endswith 检查字符串是否是以 obj 结束
strip 头尾去空格
字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
一个简单的字典实例:
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
访问字典里的值
把相应的键放入熟悉的方括弧,如下实例:
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
print("你的名字叫:",mes["name"])
print(mes["age"],"岁")
print("来自",mes["address"])
你的名字叫: 陈淮聪
26 岁
来自 广东
字典的方法
* dict.get()*
获取key的返回值
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
print(mes.get("name"))
dict.pop()
删除字典给定键 key所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
print(mes.pop("age"))
print(mes)
dict.copy()
返回一个字典的浅复制,如果已赋值的形式,结果会随着操作改变
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
n = mes
m = mes.copy()
print("address:",mes.pop("address"))
print("n = mes:",n)
print("m = mes.copy:",m)
address: 广东
n = mes: {'name': '陈淮聪', 'age': 26}
m = mes.copy: {'name': '陈淮聪', 'age': 26, 'address': '广东'}
dict.keys()
以列表返回一个字典所有的键
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
print(mes.keys())
dict_keys(['name', 'age', 'address'])
dict.values()
以列表返回字典中的所有值
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
print(mes.values())
dict_values(['陈淮聪', 26, '广东'])
dict.items()
以列表返回可遍历的(键, 值) 元组数组
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
print(mes.items())
for item in mes.items():
print(item)
dict_items([('name', '陈淮聪'), ('age', 26), ('address', '广东')])
('name', '陈淮聪')
('age', 26)
('address', '广东')
dict.setdefault()
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
print(mes.setdefault("age"))
print(mes.setdefault("school"))
print(mes)
26
None
{'name': '陈淮聪', 'age': 26, 'address': '广东', 'school': None}
dict.update()
把字典dict2的键/值对更新到dict里,相当于+
n = dict(a = 1 , b = 2)
m = dict(x = 10, y = 100)
n.update(m)
print(n)
{'a': 1, 'b': 2, 'x': 10, 'y': 100}
update使用方式,先声明,再使用
a = dict()
n = dict(a = 1 , b = 2)
m = dict(x = 10, y = 100)
a.update(n)
print(a)
{'a': 1, 'b': 2}
dict.clear()
删除字典内所有元素
mes = \
{"name" : "陈淮聪",
"age" : 26,
"address" : "广东"
}
mes.clear()
print(mes)
{}
zip
高阶函数
l1 = ["a","b","c","d"]
l2 = [1,2,3,4]
print(dict(zip(l1,l2)))
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
python2 和 python3 的区别
print(a.items()) 全部存到内存中。
python2存在:print(a.iteritems()) 每循环一次取一次对象
python3中 dict.items 集成了python2_dict.iteritems
a = dict()
n = dict(a = 1 , b = 2)
m = dict(x = 10, y = 100)
print(type(n.items()))
<class 'dict_items'>
强制类型转换
list()
int()
str()
float()
tuple()
dict()
help()
isinstance()
判断是否为已知的类型
l1 = ["a","b","c","d"]
l2 = [1,2,3,4]
l3 = (dict(zip(l1,l2)))
print(isinstance(l1,list))
print(isinstance(l3,dict))
enumerate()
enumerate(sequence, [start=0])
sequence 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
l1 = ["a","b","c","d"]
for i,j in enumerate(l1):
print(i,j)
0 a
1 b
2 c
3 d
l1 = ["a","b","c","d"]
for x in enumerate(l1):
print(x)
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')