Python中的四种数据结构:列表,字典,元组,集合 词频统计

list=[val1,val2,val3,val4]

dict={key1:val1,key2:val2}

tuple=(val1,val2,val3,val4)

set={val1,val2,val3,val4}

  • 列表(list)
  1. 列表中每一个元素都是可变的;
  2. 列表中的元素是有序的;
  3. 列表可以容纳Python中的任何对象
  • 字典(Dictionary)
  1. 字典中数据必须是以键值对的形式出现的
  2. 键是不能重复的,值可以重复
  3. 字典中的键(key)是不可变的,即无法修改;而值(value)是可变的,即可以修改,可以是任何对象
  • 集合(set)
  1. 集合中的元素是无序的,不重复的
  2. 集合不可以切片也不能被索引

#1.sorted()函数默认升序
num=[6,3,2,5,8]
print(sorted(num))#[2, 3, 5, 6, 8]
#2.可以指定降序
print(sorted(num,reverse=True))#[8, 6, 5, 3, 2]
#3.两个列表
str=['六','贰','伍','叁','捌']
for a,b in zip(num,str):
    print(b,'is',a)
# 六 is 6
# 贰 is 3
# 伍 is 2
# 叁 is 5
# 捌 is 8
#列表解析式
#list=[item for item in iterable]

c=[letter.lower() for letter in 'ABCDDDGDHR']
#['a', 'b', 'c', 'd', 'd', 'd', 'g', 'd', 'h', 'r']

b=[n for n in range(1,10) if n%2==0]
print(b)
#[2, 4, 6, 8]

a=[j+1 for j in range(1,20)]
print(a)
#[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

print(c)
b=[i for i in range(1,11)]
print(b)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

#等同于上面
a=[]
for i in range(1,11):
    a.append(i)
print(a)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#循环列表时获取元素索引
letters=['a','b','c','d','e','f']
for num,letter in enumerate(letters):
    print(letter,'is',num+1)

词频统计:

import string
path='wenjian'
with open(path,'r') as text:
    #string.punctuation字符串里的所有标点(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
    #strip(string.punctuation)表示以标点作为分隔符
    #b=[item for item in iterable]比range快
    words=[raw_word.strip(string.punctuation).lower() for raw_word in text.read().split()]

    words_index=set(words)#用集合元素不重复的特性,将重复单词去掉,留下不重复的单词作为键
    #创建一个以单词为键(key),出现频率为值(value)的字典
    counts_dict={index:words.count(index) for index in words_index}
#key=lambda x:counts_dict[x]叫做lambda表达式,以字典中的值为排序的参数
for word in sorted(counts_dict,key=lambda x:counts_dict[x],reverse=True):
    print('{}--{} times'.format(word,counts_dict[word]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值