元素不可以重复,无序
用大括号 { } 生成集合,但不能为空,空了就成字典了
操作函数或方法 | 描述 |
---|---|
S.add(x) | 如果x不在集合S中,则将x增加进S |
S.discard(x) | 移除S中的元素x,如果x不在集合S中,不报错 |
S.remove(x) | 移除中的元素x,如果x不在集合S中,产生KeyError异常 |
S.clear() | 移除S中所有元素 |
S.pop() | 随机返回S的一个元素,更新S,若S为空产生KeyError异常 |
S.copy() | 返回集合S的一个副本 |
len(S) | 返回集合S的元素个数 |
x in S | 判断S中元素x,x在集合S中,返回True,否则返回False |
x not in S | 判断S中元素x,x不在集合S中,返回True,否则返回False |
set(x) | 将其他类型变量x转变为集合类型 |
字符串、元组、列表
序列是有先后关系的一组元素,元素类型可以不同,元素可以重复
操作函数或方法 | 描述 |
---|---|
x in s | 判断s中元素x,x在序列s中,返回True,否则返回False |
x not in s | 判断s中元素x,x不在序列s中,返 |
s + t | 连接序列s和t |
s * n | 将序列s复制n次 |
s[i] | 索引,返回第i个元素,i是序号 |
s[i:j]或s[i:j:k] | 切片,返回序列s中第i到j以k为步长的元素子序列 |
s[::-1] | 取反 |
len(s) | 返回序列s的长度 |
min(s) | 返回序列s的最小元素,s中元素要可比较 |
max(s) | 返回序列s的最大元素,s中元素要可比较 |
s.index(x) s.index(x,i,j) | 返回序列s从i开始到j位置中第一次出现元素x的位置 |
s.count(x) | 返回序列s中出现x的总次数 |
元祖是序列的一种拓展
元祖一旦创建就不能被修改
可用小括号()或 tuple() 创建,元素间用逗号分隔,小括号可省略
element = “aaa”,“bbb”,“ccc”
x = “123”,element,“321”
x[1][1] = “bbb”
列表是序列的一种拓展
列表创建后可随意修改
用方括号[ ]或 list() 新建列表
[ ]是真正创建列表,列表的赋值只是传递引用,两个名字指向同一个列表,并没有新建列表:list1 = list 2
操作函数或方法 | 描述 |
---|---|
ls[i] = k | 替换列表ls第i个元素为x |
ls[i:j:k] = lt | 用列表lt替换ls切片后对应元素子列表 |
del ls[i] | 删除列表ls中第i元素 |
del ls[i:j:k] | 删除列表ls中第i到j以k为步长的元素 |
ls += lt | 更新列表ls,将列表lt元素增加到列表ls中 |
ls *= n | 更新列表ls,其元素重复n次 |
ls.append(x) | 在列表ls最后增加一个元素x |
ls.clear() | 删除列表ls中所有元素 |
ls.copy() | 生成一个新列表,赋值ls中所有元素 |
ls.insert(i,x) | 在列表ls的第i位置增加元素x |
ls.pop(i) | 将列表ls中第i位置元素取出并删除该元素 |
ls.remove(x) | 将列表ls中出现的第一个元素x删除 |
ls.reverse() | 将列表ls中的元素反转 |
不希望数据被程序改变,可将列表转换为元组类型
/>>>ls = [“cat”,“dog”,“tiger”,1024]
/>>>lt = tuple(ls)
/>>>lt
/(‘cat’,‘dog’,‘tiger’,1024)
#Statistic.py 统计
def getNum(): #获取用户多组数字增加进列表
nums = []
iNumStr = input("请输入数字(回车退出):")
while iNumStr != "":
nums.append(eval(iNumStr))
iNumStr = input("请输入数字(回车退出):")
return nums
def mean(numbers): #计算平均值
s = 0.0
for num in numbers:
s = s + num
return s/len(numbers)
def dev(numbers,mean): #计算方差
sdev = 0.0
for num in numbers:
sdev = sdev + (num - mean)**2
return pow(sdev / (len(numbers)-1),0.5)
def median(numbers): #计算中位数
sorted(numbers)
size = len(numbers)
if size % 2 == 0:
med = (numbers[size//2-1] + numbers[size//2])/2
# /表示浮点数除法,//表示整数除法(舍余数取整)
else:
med = numbers[size//2]
return med
n = getNum()
m = mean(n)
print("平均值:{},方差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))
映射:一种自定义索引
映射是一种键(索引)和值(数据)之间的关系
字典是键值对的集合,键值对之间无序
采用 { } 或dict( )创建新字典,键值对用冒号:表示,用逗号分隔 d = { “a”:“A”,“b”:“B”,“c”:“C” }
d [ “a” ] ——> “A”
操作函数或方法 | 描述 |
---|---|
del d[]k | 删除字典d中键k对应的数据值 |
k in d | 判断键k是否在字典d中,如果在返回True,否则返回False |
d.keys() | 返回字典d中所有的键信息 |
d.values() | 返回字典d中所有的值信息 |
d.items() | 返回字典d中所有的键值对信息 |
d.get(k,< default >) | 键k存在,则返回相应值,不在则返回default值 |
d.pop(k,< default >) | 键k存在,则取出相应值,不在则返回default值 |
d.popitem() | 随机从字典d中取出一个键值对,以元祖形式返回 |
d.clear() | 删除所有的键值对 |
len(d) | 返回字典d中元素的个数 |
实现功能 | 代码 |
---|---|
定义空字典d | d = { } |
向d新增2个键值对元素 | d[“a” = 1];d[“b” = 2] |
修改第2个元素 | d[“b” = 3] |
判断字符“c”是否是d的键 | “c” in d |
计算d的长度 | len(d) |
清空d | d.clear() |
例如:统计数据出现的次数,数据是键,次数是值