【Python入门】——组合数据类型

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中元素的个数

发布了141 篇原创文章 · 获赞 71 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/sinat_40872274/article/details/104196968
今日推荐