0
点赞
收藏
分享

微信扫一扫

Python学习:第六章

微信关注公众号:夜寒信息


为每位用户免费提供技术帮助与资源供给



组合数据类型





        不知不觉已经学到到第六章了,这张我们要学的是组合数据类型。之前我们也涉及到了字符串,而现在我们要学的就不止字符串了。这张我们将要学习集合,元组,列表,字典。学好了这些我们就会定义一维、二维,乃至多维列表,这使得我们能解决的问题也更多更便捷!










集合

1


定义




集合类型与数学中的集合概念一致

集合元素之间无序,每个元素唯一,不存在相同元素

集合元素不可更改,不能是可变数据类型(被放到集合中的元素不可被修改

2


集合使用{}建立



例:>>>A={“python”,123,(“python”,123)}

  {123,‘python’,(‘python’,123)}

3


使用set()建立集合



例:>>>B=set(“pypy123”)

  {‘1’,‘p’,‘2’,‘3’,‘y’}

(空集合只能用set()建立)

4


S|T



返回一个集合,包括在集合S和T中的所有元素

5


S|T





返回一个集合,包括在集合S但不在T中的元素

6


S&T



返回一个集合,包括同时在集合S和T中的元素

7


S^T



返回一个集合,包括集合S和T中的非相同元素

8


>,=,<,>=,<=



关系操作符,返回True或False

9


|=,-=,&=,^=



增强操作符,用于更新S中的元素

例:S^=T 用S和T补运算的结果更新集合元素 

10


S.add(x)



如果x不在集合S中,将x增加到S

11


S.discard(x)



移除S中的元素x,如果x不在集合S中,不报错

12


S.remove(x)



移除S中元素x,如果x不在集合S中,产生KeyError异常

13


S.clear()



移除S中所有元素

14


S.pop()



随即返回S的一个元素,更新S,若S为空产生KeyError异常

15


S.copy



返回集合S的一个副本

16


len(S)



返回集合S的元素个数

17


x in S



判断S中元素x,x在集合S中,返回True,否则返回False

18


x not in S



判断S中元素x,x不在集合S中,返回True,否则返回False

19


set(x)



将其他类型变量x转变为集合类型


序列

1


定义



序列是一维元素向量,元素类型可以不同
类似数学元素序列:S0,S1,…,Sn-1
元素间由序号引导,通过下标访问序列的特定元素

2


len(s)



返回序列s的长度

3


min(s)



返回序列s的最小元素,s中元素需要可比较

4


max(s)



返回序列s的最大元素,s中元素需要可比较

5


s.index(x)





或s.index(x,i,j)返回序列s从i开始到j位置中第一次出现元素x的位置

6


s.count(x)



返回s中出现x元素的总次数


序列图例

Python学习:第六章_元组


Python学习:第六章_键值对_02


元组

1


定义



元组是一种序列类型,一旦创建就不能被修改
使用小括号()或tuple()创建,元素间用逗号,分隔
可以使用或不使用小括号

元组类型继承了序列的所有操作


列表

1


定义




列表是一种序列类型,创建后可以随意被修改
使用方括号[]或list()创建,元素间用逗号,分隔
列表中个元素类型可以不同,无长度限制

2


ls[i]=x



替换列表ls第i元素为x

3


ls[i:j:k]=lt



用列表lt替换ls切片后所对应的元素子列表

4


del ls[i]



删除列表ls中第i元素

5


del ls[i:j:k]





删除列表ls中第i到第j以k为步长的元素

6


ls+=lt



更新列表ls,将列表lt元素增加到列表ls中

7


ls=n*



更新列表ls,其元素重复n次

8


ls.append(x)



在列表ls最后增加一个元素x

9


ls.clear()



删除列表ls中所有元素

10


ls.copy()



生成一个新列表,赋值ls中所有元素

11


ls.insert(i,x)



在列表ls第i位置增加元素x

12


ls.pop(i)



将列表ls中第i位置元素取出并删除该元素

13


ls.remove(x)



将列表ls中出现的第一个元素x删除

14


ls.reverse()



将列表ls中的元素反转

15


sorted(ls)



对列表ls按从小到大排序


图例

列表函数示例

Python学习:第六章_键值对_03


Python学习:第六章_python_04



字典

1


定义




字典类型是"映射"的体现
键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间无序
采用大括号{}和dict()创见,键值对用冒号:表示

2


del d[k]



删除字典d中键k对应的数据值

3


k in d



判断键k是否存在字典d中,如果在返回True,否则返回False

4


d.keys()



返回字典d中所有的键信息

5


d.values





返回字典d中所有的值信息

6


d.items()



返回字典d中所有的键值对信息

7


d.get(k,default)



键k存在,则返回相应值,不存在则返回< default >值

8


d.pop(k,default)



键k存在,则取出相应值,不存在则返回< default >值

9


d.popitem()



随即从字典d中取出一个键值对,以元组形式返回

10


d.clear()



删除所有键值对

11


len(d)



返回字典d中元素的个数



图例

字典函数示例

Python学习:第六章_元组_05


ls.reverse()例子


Python学习:第六章_键值对_06


jieba库的使用


1


jieba.lcut(s)




精确模式,返回一个列表类型的分词结果

2


jieba.lcut(s,cut_all)




全模式,返回一个列表类型的分词结果,存在冗余

3


jieba.lcut_for_searxc(s)




搜索引擎模式,返回一个列表类型的分词结果,存在冗余


3


jieba.add_word(w)




增加新词w



基本统计值计算

输出平均数、方差、中位数。


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 media(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), media(n)))


哈姆雷特词频统计

统计英文文献哈姆雷特词语出现频率。


def getTxt():
txt = open("hamlet.txt", "r").read()
txt = txt.lower()
for ch in '!"#$%^&*()_+=-,./\\|}{][:;<>~@?':
txt = txt.replace(ch, " ")
return txt


hamletTxt = getTxt()
words = hamletTxt.split()
counts = {}
for word in words:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count = items[i]
print("{0:10}{1:>5}".format(word, count))


数字不同之和


获得用户输入的一个整数N,输出N中所出现不同数字的和。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。


n = input()
ss = set(n)
s = 0
for i in ss:
s += eval(i)
print(s)


人名最多数统计


编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。


s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 
杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙
金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍
鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰
阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰
乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王
忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正
李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复
逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣
洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复
黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄
张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫
洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈
完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱
郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲
谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉
双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏
逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
ls = s.split()
d = {}
for i in ls:
d[i] = d.get(i, 0) + 1
max_name, max_cnt = "", 0
for k in d:
if d[k] > max_cnt:
max_name, max_cnt = k, d[k]
print(max_name)


微信关注公众号:

夜寒信息

为每一位用户免费提供

优质技术帮助与资源供给

Python学习:第六章_元组_07Python学习:第六章_键值对_08Python学习:第六章_键值对_09

Python学习:第六章_键值对_10


举报

相关推荐

第六章 容器

第六章:接口

第六章总结

PTA第六章

第六章 BOM

第六章,树 学习笔记

Python.第六章(函数)

0 条评论