组合数据笔记

  • 集合
  • 序列类型
  • 元组
  • 列表
  • 字典
  • 词频统计(应用)



学习

慕课:python学习的笔记

集合

python 把一个数组拆成多个数组 python拆分组合形成新数_数据


要创建一个空集合,只能用se()方法。集合运算

python 把一个数组拆成多个数组 python拆分组合形成新数_数据_02


重点应用:数据去重

python 把一个数组拆成多个数组 python拆分组合形成新数_python 把一个数组拆成多个数组_03

序列类型

python 把一个数组拆成多个数组 python拆分组合形成新数_数据_04


序号的索引:正反两种。

python 把一个数组拆成多个数组 python拆分组合形成新数_Google_05


python 把一个数组拆成多个数组 python拆分组合形成新数_Google_06


ls[::-1]表示对序列取反操作。

python 把一个数组拆成多个数组 python拆分组合形成新数_Google_07


python 把一个数组拆成多个数组 python拆分组合形成新数_元组_08

元组

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


    其中creature[::-1]不改变原有元组的值,是生成了一个新的和原始元组反序的元组。

列表

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


    注意:ls.append(x)是增加一个元素x

    关于del ls[::3]说明,是从索引0开始删除,以3为步长,进行删除。
ls =['w','t','y','q','o','d','b']
del ls[::3]
print(ls)
>>['t', 'y', 'o', 'd']

应用场景:数据遍历、数据保护

for item in ls:

for item in tp:

数据保护:元组是不能被修改的,则有的时候,若不想数据被修改,就转换成元组的形式tp=tuple(ls)

字典

字典类型是“映射”的体现:

  • 键值对:键是数据索引的扩展
  • 字典是键值对的集合,键值对之间无序
  • 采用{}或dict()创建,键值对用:冒号表示
    集合也是{}表示,但是在集合部分说道,要生成空集合,只能用set()方法,是因为{}方法生成的是字典。

    其中d.items()方法,返回dict_items()括起来的数据。
dict = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.taobao.com'}
 
print "字典值 : %s" %  dict.items()
 
# 遍历字典列表
for key,values in  dict.items():
    print key,values

>>字典值 :dict_items( [('Google', 'www.google.com'), ('taobao', 'www.taobao.com'), ('Runoob', 'www.runoob.com')])
Google www.google.com
taobao www.taobao.com
Runoob www.runoob.com

python 把一个数组拆成多个数组 python拆分组合形成新数_Google_09


其中d.keys() d.values()并不返回列表类型,它是返回keys或values类型,所以只能做遍历操作,不能当做列表处理。

python 把一个数组拆成多个数组 python拆分组合形成新数_python 把一个数组拆成多个数组_10


python 把一个数组拆成多个数组 python拆分组合形成新数_数据_11

词频统计(应用)

#Calhamlet 词频统计
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()
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))
  • 要对原文本特殊字符进行处理,用空格替换
    -其中 list(counts.items())的理解, print(counts.items())list(counts.items())结果表达形式是不一样的,以便于操作进行转换成列表处理。。
>>dict_items([('Google', '3'), ('Runoob', '5'), ('taobao', '1')])
>>[('Google', '3'), ('Runoob', '5'), ('taobao', '1')]
  • key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。key=lambda x:x[1] 为对前面的对象中的第二维数据(即字典value)的值进行排序。 key=lambda 变量:变量[维数]
    reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)
  • print("{0:<10}{1:>5}".format(word,count)) 其中{0:<10}{1:>5}中,冒号是引导符,后面跟的是格式控制方法。<表示左对齐,>表示右对齐,数字表示宽度。同理,题中<10表示左对齐,并占10个位置,>5表示右对齐,占5个位置。
    输出结果: