1.集合
# 集合用大括号{}表示, 元素间用逗号分隔 元素唯一 无序
A = {"python",123,("python",123)} #使用{}建立集合
B = set("pypy123") #使用set()函数建立集合 {'1','p','2','3','y'}
操作符
#六种操作符
S | T #集合并操作
S - T #集合差操作
S & T #集合交操作
S ^ T #集合补操作 S和T中的非相同元素
S <= T 或 S < T #判断S和T的子集关系 返回T,F
S >= T 或 S > T #判断S和T的包含关系 返回T,F
集合处理方法
#基本和C++中STL类似
S.add(x) #将x增加到S
S.discard(x) #移除集合S中的元素x,如果x不在集合S中,不报错
S.remove(x) #移除集合S中的元素x,如果x不在集合S中,产生KeyError异常
S.clear() #移除所有元素
S.pop() #随机取出一个元素返回
S.copy() #复制集合S
len(S) #返回集合S的元素个数
x in S #判断x是否在集合S中 在返回True,否则False
2.序列(线性表)
# 序列用中括号[]表示, 元素间用逗号分隔 线性结构
序列操作符
#五i种操作符
x (not)in s #x是否在序列s中,返回True 或 False
s + t #连接序列s和t
s*n 或 n*s #将序列s复制n次
s[i] #返回s的第i个元素
s[i:j] 或 s[i:j:k] #序列的切片操作 i~j-1的子序列 步长为k
此处切片和字符串一致
序列处理方法
#基本和C++中STL类似
min(S) #返回序列S的最小值
max(S) #返回序列S的最大值
s.index(x[,i,j]) #返回序列S中 i到j-1第一次出现x的下标
S.count(x) #返回序列S中x出现的次数
len(S) #返回序列S的元素个数
3.元组
# 元组用小括号()表示, 元素间用逗号分隔 将元素有序排列
def fun():
return a,b
可以使用函数 tuple() 来创建一个元组
t = tuple()
4.列表(类C++vector)
# 列表用中括号[]表示, 元素间用逗号分隔 将元素有序排列
可以使用函数 list() 来创建一个列表
列表函数
ls[i] = x #替换ls中的第i个元素为x
ls[i:j:k] = lt #用列表lt替换ls切片后的子序列
del ls[i] #删除列表ls的中第i个元素
del ls[i:j:k] #删除列表ls中 i~j-1 步长为k的元素
ls += lt #将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) #将i位置上元素返回并删除
ls.remove(x) #将ls中出现的第一个元素x删除
ls.reverse() #将ls中的元素反转
实例:"基本统计值计算"
#求一组数据的总个数、和、平均值、方差、中位数
#实例:"基本统计值计算"
def getNum(): #获取不定长输入
nums = []
iNumStr = input("请输入数字(回车退出):")
while iNumStr != "":
nums.append(eval(iNumStr))
iNumStr = input("请输入数字(回车退出):")
return nums
def getAvg(numbers):#计算平均值
s = 0.0
for num in numbers:
s += num
return s / len(numbers)
def dev(numbers,avg): #计算方差
sdev = 0.0
for num in numbers:
sdev += (num-avg)**2
return pow(sdev/(len(numbers)-1),0.5)
def median(numbers): #计算中位数er
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 = getAvg(n)
print("平均值{},方差{:.2},中位数:{}.".format(m,dev(n,m),median(n)))
5.字典类型
# 采用大括号{}和dict()创建字典,键值对用':'表示
# 类似C++STL中的map
{<键1>:<值1>,<键2>:<值2>,<键3>:<值3>...}
d = {"中国":"北京","法国":"巴黎","美国":"华盛顿"}
d["中国"] = "北京"
字典类型方法
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.claer() #清空字典
len(d) #d中元素的个数