用Python玩数据-笔记三

来源:互联网 发布:mac git ssh key 生成 编辑:程序博客网 时间:2024/05/17 22:59

1、本地数据的获取
文件的打开

file_obj = open(filename, mode='r', buffering=-1)

mode是可选参数,默认值是r,buffering也是可选参数,默认值是-1,0代表不缓冲,1表示缓冲
r+=r+w
w+=w+r
a+=a+r
注意:w和w+都需要清空原文件的内容,a和a+只能在文件尾部追加,如果在中间添加只能使用r+
open()函数返回的是一个文件对象
常用函数:
file.write(str)写入字符串str
file.read(size)读文件直到文件结束,返回一个字符串
file.readlines()返回一个列表可以读取每一行的文件,读取的时候,带着换行符,需要程序员自己去除
file.seek(offset,whence=0)在文件中移动文件指针,whence(0表示文件的头部,1表示文件的当前位置,2表示文件的尾部),偏移offset个字节
2、网络数据获取
抓取互联网上的数据,常用的库
urllib、urllib2、httplib和httplib2
其中前三个是python的标准库,最后一个是http的专有库

import urllibr=urllib.urlopen('http://blog.csdn.net')html=r.read()print html

3、序列
序列的下标是从0开始的,索引可以从0到N-1,也可以从-1到-N,也可以访问多个元素,被称为切片
[1:4]从1开始到4-1结束,不包括4

str = 'Hello, World!'  字符串aList = [2, 3, 5, 7, 11]  列表aTuple = ('Sunday', 'happy') 元组

标准类型运算符

< > != == and  or not  is is not

值比较、布尔运算和对象身份比较
序列类型转换工厂函数
list()、str()和tuple()比较常用,分别转换为列表、字符串和元组
序列类型中有很多的內建函数
len()、sorted()、max()、sum()和reversed()
4、字符串
如果字符串很长,可以使用三引号,使用三引号,字符串里面的内容不变
格式运算符

format_string % (arguments_to_convert)

字符串有很多內建函数
split() 切分字符串
strip() 去掉字符串中的空格
字符串中海油很多转义字符
\r 回车 \n 换行 \e转义
5、列表
列表是一种可扩展的容器对象,列表是可变的,字符串是不可变的
extend() 合并列表
enumerate() 遍历列表经常用到

for index, item in enumerate(sequence):    process(index, item)

index默认是从0开始
list.sort(func=None,key=None, reverse=False)
列表解析

 [x ** 2 for x in range(10) if x ** 2 < 50]

6、元组
元组是不可变的,元组用圆括号表示 ,跟列表最大的区别就是元组里面的元素不能改变
元组主要用作什么地方?
在映射类型中当做键使用,函数的特殊类型参数,作为很多內建函数的返回值
元组作为函数的形式参数

def func(args1, *argst):    print args1    print argst func('Hello,','Wangdachui','Niuyun','Linling') Hello,('Wangdachui', 'Niuyun', 'Linling')

返回值为元组的函数
enumerate()
如果函数返回对象的个数为0,返回None
如果函数返回对象的个数为1,返回object
如果函数返回对象的个数为>1,返回tuple
7、字典
Python中唯一內建的一种映射类型,key-value
创建字典:直接创建或者使用dict函数
key:value
函数

adict={}.fromkeys(('lisi','zhangsan','wangwu','maliu'),3000){'lisi': 3000, 'maliu': 3000, 'wangwu': 3000, 'zhangsan': 3000}

zip函数

aDict=dict(zip(alist,blist))

keys() values()

adict.keys()   adict.values()  adict.get('XXX') adict.has_key('XXX')  

update()更新字典

aInfo = {'Wangdachui': 3000, 'Niuyun':2000, 'Linling':4500}bInfo = {'Wangdachui': 4000, 'Niuyun':9999, 'Wangzi':6000}aInfo.update(bInfo)

字典输出

for key in adict.keys():    print 'the key is =%s,the value is =%s' % (key,adict[key])---------------------------------------'the key is %(lisi)s,the value is ' % adict

8、集合
一个无序不重复的元素的集合
可变集合set和不可变集合frozenset

aset=set('hello')   {'e', 'h', 'l', 'o'}'o' in aset

集合中的>、<不是比较大小是包含的意思
&表示交集,|表示并集,-表示去差,属于前一个集合不属于后一个集合
^对称差分

0 0