1,dict(字典); 使用键 - 值 (key-value) 存储, 具有极快的查找速度
- d = {'name':'小明', 'age':26, 'sex':'男', 'area':'长沙'}
- print('name1' in d) #键 in 字典 判断键是否存在. 存在为 True, 否则 False
- print(d.get('name1')) #d.get() 获取字典 dict 中键为 name1 的值, 不存在返回 None
- d.pop('area') #d.pop() 删除字典的最后一个元素
- print(d['name']) #读取 dict 里面的值
和 list 比较, dict 有以下几个特点:
查找和插入的速度极快, 不会随着 key 的增加而变慢;
需要占用大量的内存, 内存浪费多.
而 list 相反:
查找和插入的时间随着元素的增加而增加;
占用空间小, 浪费内存很少.
2,set(key=>value)的集合, 但不存 value,key 不能重复, 重复元素在 set 中自动被过滤:
- s = set([1,1,2,2,3,3,4])
- print(s) #{1, 2, 3, 4}
- s.add(5)
- print(s) #{1, 2, 3, 4, 5}
- s.remove(1)
- print(s) #{2, 3, 4, 5}
- s1 = set([1,2,3,4])
- s2 = set([2,3,4,5])
- print(s1 & s2) # & 交集 #{2, 3, 4}
- print(s1 | s2) # | 并集 #{1, 2, 3, 4, 5}
3, 可变对象(list), 不可变对象(set)
- s1 = [1,3,4,12,6,9,2,7]
- s1.sort() # sort()集合排序
- print(s1) #[1, 2, 3, 4, 6, 7, 9, 12]
- s1 = 'abcd'
- s2 = s1.replace('a', 'A') # replace()字符串替换
- print(s2) #Abcd
4, 内置函数
- print(abs(-11))
- print(max(12, 34, 56, 78, 90))
- #数据类型转换
- print(str(11))
- print(int('11'))
- print(float(11))
- print(bool(11))
5, 自定义函数; 使用 def 语句, 依次写出函数名, 括号, 括号中的参数和冒号: 如
- import math #导入数学库
- def move(x, y, step, angle=0):
- nx = x + step * math.cos(angle)
- ny = y - step * math.sin(angle)
- return nx, ny
- r = move(100, 100, 60, math.pi / 6)
- print(r) #(151.96152422706632, 70.0)tuple 元组
6, 例题: 求 ax2 + bx + c = 0 二个解
- import math
- def quadratic(a, b, c):
- tmp = b * b - 4 * a * c
- if tmp < 0:
- return None
- elif tmp == 0:
- return -b/(2 * a)
- else:
- x=(-b + math.sqrt(tmp))/(2 * a)
- y=(-b - math.sqrt(tmp))/(2 * a)
- return x,y
- print(quadratic(2, 3, 1))