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))