python6(集合,序列,字典)

文章目录

  • 前言:
  • 集合:
    • 集合基本定义
    • 集合间运算
    • 集合处理方法
    • 集合类型应用场景
      • 包含关系比较
      • 数据去重
  • 序列:
    • 序列类型运算
    • 序列类型通用函数和方法
    • 元组
    • 列表
  • 字典:
    • 字典类型操作函数和方法
    • 词频统计(中文)

前言:

python6(集合,序列,字典)_第1张图片

'''
isinstance(x,y)判断数据x是否是类型y,是的话就返回True,不是返回False。
ls=['中国','美国','日本'] 
print(isinstance(ls,tuple))  #不是元组类型,返回False。
'''

python中的变量都是指针。
用一个变量对另一个变量赋值意味着让两个变量指向同一个地方。如:
a=b;

a=[1,2,3,4]
b=[1,2,3,4]  # 此时a和b所指向的地方放的东西相同,但a和b并不一定指向相同的地方。

a=b;         # a=b使a和b指向同一个地方。
a[2]='hj'      #因为指向了同一个地方,所以修改a[2],b[2]也会改变。a[2]和b[2]是同一个东西。
print(b)

python6(集合,序列,字典)_第2张图片
转义字符如\n,只能出现在字符串里面。

集合:

集合基本定义

多个元素的无序组合,每个元素是唯一的,不存在相同元素。

'''
1.集合用{}表示,元素间逗号分隔。
2.建立集合类型用{}或set()
3.建立空集合类型,必须用set()
'''
>>> A={'python',123,('python',123)}  #使用{}建立集合
>>> A
{('python', 123), 123, 'python'}
>>> B=set('pypy123')              #使用set()建立集合
>>> B
{'1', 'y', '2', '3', 'p'}
>>> C={'python',123,'python',123}
>>> C
{123, 'python'}                 #集合里不会有相同的元素
>>> 

集合间运算

python6(集合,序列,字典)_第3张图片
python6(集合,序列,字典)_第4张图片

集合处理方法

python6(集合,序列,字典)_第5张图片
python6(集合,序列,字典)_第6张图片

集合类型应用场景

包含关系比较

>>> 'p' in {'p','y',123}
True
>>> {'p','y'}>={'p','y',123}
False
>>> 

数据去重

>>> ls=['p','p','y','y',123]        #利用了集合无重复元素的特点
>>> s=set(ls)                       #将列表转换为集合
>>> s
{123, 'y', 'p'}
>>> lt=list(s)                      #将集合转换为列表
>>> lt
[123, 'y', 'p']

序列:

序列是具有先后关系的一组元素。因为存在先后关系,元素之间可以相同,元素的类型可以不同。
包含字符串类型,元组类型,列表类型

#关于 组合数据类型 对多变量进行赋值
>>> a,b,c=[1,2,3]           		#对列表
>>> a
1
>>> b
2
>>> c
3
>>> m,n,b={'ds',2,(1,'df')}      	#对集合
>>> m
'ds'
>>> n
2
>>> b
(1, 'df')

序列类型运算

python6(集合,序列,字典)_第7张图片

序列类型通用函数和方法

python6(集合,序列,字典)_第8张图片

>>> ls=['python',123,'.io']
>>> len(ls)
3
>>> s='python123.io'
>>> max(s)                          #字符之间的比较是: Unicode值较低的字符被认为较小。
'y'
>>> 

元组

特点:一旦创建就不能被修改,所以也没有特殊的针对元组的操作。
在这里插入图片描述

使用()或 tuple()创建,元素间逗号分隔

creature=('cat','dog','tiger','human')
color=(0x001100,'blue',creature)
print(color[-1][2])              #找到creature元组中的tiger

python6(集合,序列,字典)_第9张图片
python6(集合,序列,字典)_第10张图片
python6(集合,序列,字典)_第11张图片

列表

创建后其中的元素可以随意的修改,可以向其中增加,删除元素。
使用 [ ]或者 list()创建,元素间逗号分隔,各元素类型可以不同。
python6(集合,序列,字典)_第12张图片

ls=[1,2,3,4,5,6]
t=ls[0:5:2]   
r=ls+t
ls=ls*2
print(t,r,ls)

在这里插入图片描述

ls=['cat','dog','tiger',1024]
ls[1:2]=[1,2,3,4]               #将'dog'换为1,2,3,4
print(ls)
del ls[::3]                     #删除序号0,3,6对应的元素
print(ls)

python6(集合,序列,字典)_第13张图片
python6(集合,序列,字典)_第14张图片
python6(集合,序列,字典)_第15张图片

ls=['cat','dog','tiger',1024]
lt=tuple(ls)                    #变为元组类型,元组类型元素不可改变,可进行保护
print(lt)

python6(集合,序列,字典)_第16张图片

def getnum():
    nums = []
    inumstr = input("请输入数字(回车退出):")
    while inumstr != ' ': #不等于空格时执行,输入空格则不进入while
        nums.append(eval(inumstr))
        inumstr = input("请输入数字(回车退出):")
    return nums
print(getnum())

python6(集合,序列,字典)_第17张图片

字典:

字典类型是 ”映射“的体现。字典是 键值对 的集合,键值对 之间无序。
采用 { } 和 dict( )创建,键值对用冒号 : 表示。
通过 [ ]的索引形式来访问字典中的值。

#字典变量={键1:值1,键2:值2,键3:值3,...,键n:值n}
#每一个元素都是一个键值对
#生成一个空字典,d={}
d={'中国':'北京','美国':'华盛顿','法国':'巴黎'}
print(d)
print(d['中国'])      #通过这样的方式访问北京
dic={'中国':'北京',2:'hj','jk':'ml'}
print(dic.keys())
print(dic.values())
print(dic.items())
print()
print(list(dic.keys()))
print(list(dic.values()))
print(list(dic.items()))


dict_keys(['中国', 2, 'jk'])
dict_values(['北京', 'hj', 'ml'])
dict_items([('中国', '北京'), (2, 'hj'), ('jk', 'ml')])

['中国', 2, 'jk']
['北京', 'hj', 'ml']
[('中国', '北京'), (2, 'hj'), ('jk', 'ml')]

字典类型操作函数和方法

python6(集合,序列,字典)_第18张图片
python6(集合,序列,字典)_第19张图片
python6(集合,序列,字典)_第20张图片

#文本词频统计

def gettext():  #归一化处理文本
    txt=open('hamlet.txt','r').read()           #打开文本,全部读入,返回一个字符串。
    txt=txt.lower()                             #将所有字母小写
    for ch in '!"@#$%&()*+,-./:;<=>?[]\^_‘{|}~':    #将这些各种的符号,标点符号全变为空格
        txt=txt.replace(ch,' ')
    return txt

hamlettxt=gettext()
words=hamlettxt.split()        #用空格分隔,并返回一个列表类型给words
counts={}                      #建立一个字典
for word in words:             #遍历列表中的每一个单词
    counts[word]=counts.get(word,0)+1   #记录每一个单词出现的次数
items=list(counts.items())    #将counts变为列表
items.sort(key=lambda x:x[1],reverse=True)  #key参数:按照第二个元素进行排序
for i in range(10):   #打印出现频率最高的前10个单词及出现的次数
    word,count=items[i]
    print('{:<10}{:>5}'.format(word,count))

python6(集合,序列,字典)_第21张图片

词频统计(中文)

 # 对字符串 article 进行处理
dele = {'。','!','?','“','”','(',')',' ','》','《',',','\r','\n','\r\n','\t'}
words = jieba.lcut(article)
#词频统计
articleDict = {}
articleSet = set(words)-dele            # 去除标点符号
for w in articleSet:
    if len(w)>1:                        # 去除一个字的
        articleDict[w] = words.count(w)
items_=list(articleDict.items())
# 排序
items_.sort(key = lambda x:x[1], reverse = True)
for i in range(20):
    print(items_[i])

('发展', 141)
('建设', 79)
('推进', 61)
('加强', 53)
('经济', 43)
('实施', 42)
('完善', 41)
('企业', 41)
('创新', 40)
('促进', 38)
('推动', 38)
('支持', 37)
('改革', 36)
('坚持', 34)
('体系', 34)
('就业', 34)
('社会', 33)
('加快', 30)
('国家', 30)
('服务', 29)

你可能感兴趣的:(python)