您的位置:首页 > 编程语言 > Python开发

Python 基础内容 三

2015-11-14 07:53 741 查看
列表赋值:
l1=[]
l1.append()
字典赋值:
a={}
a['key1']='value'
字典动态赋值:
创建只有一项元素的列表
dict['key1']=[item,]
如果字典不是空值,那么字典里里面的元素可以直接添加a['key1']='value',如果字典是空,那么添加字典的方式:dict['key1']=[item,]
例:
#!/usr/bin/env python
name={}
file_obj=file('user_list','r')
user_read=file_obj.readlines()
file_obj.close()
for item in user_read:
user_str=item.strip()
user_list=user_str.split(';')
name[user_list[0]]=user_list[1:]
print name
{'tony': ['234', '2'], 'jony': ['123', '3'], 'tom': ['123', '2']}
collection系列
import collections x先导入模块
counter(dict)扩展的字典
most_common(3):取出里面的前3位数
update:两者相加
clear:清除
1、计数器Counter
2、有序字典
o1=collections.OrderedDict(字典)
维护一套字典+列表
3、默认字典(字典里的value设置默认类型)
from collections import defaultdict
my_dict=collections.defaultdict(list) 默认定义成字典里面的value设置成列表。
my_dict['key1'].append(1)
例如:
方法一默认字典:
my_dict=collections.defaultdict(list)
my_dict['key1'].append(1)
方法二原生态定义:
my_dict={}
my_dict['key1']=[]
my_dict['key1'].append()
4、可命名元组
collections.namedtuple(创建命名的元组) ###坐标中用的比较多
(1)、创建类
(2)、使用类创建对象
(3)、使用对象
例如:
import collections
#创建一个扩展的tuple的类,Mytuple
Mytuple=collections.namedtuple('Mytuple',['x','y'])
new=Mytuple(1,2)
print new ###Mytuple(x=1,y=2)
###调用
new.x ==>1
new.y==>2
5、双向队列
collections.deque
(1)、双向都可以取,都可以插入
(2)、线程安全,多线程抢占资源,加锁
pop:删除右边的
popleft:删除左边的
reverse:反转
append:追加
注意:单项队列不在collections模块中,在Queue中
import Queue
#创建q队列,只存10个数
q=Queue.Queue(10)
添加:q.put(值)
取数:q.get()
迭代器
必须要有iter这个方法。
生成器
yield 和 xrange ,生成器只有使用时才创建。

函数:
代码块,
__name__=="__main__":标示主程序是谁
vars()==当前模块的所有变量
__name__:"__main__"
__doc__:注释
__file__:文件路径
reload(temp):重新加载导入到模块。
divmod:分页
pow(2,11):2的11次方
all():接受一个序列,判断,所有值都是真,返回真,否则返回假。
例如:li=['tom','',19] ==>all(li)==>False
any():只要有一个为真即为真。
例如:li=['tom','',19] ==>any(li)==>True
ord():字母转换为ASCII码
chr():ASCII码转为字母
enumerate([11,22,33,44],执行数字起始值)
例如:
enumerate([11,22,33,44],1):下标从1开始
1、def 定义函数的关键字
2、函数名,日后通过函数名调用函数
3、函数声明,不自动执行,调用后才执行
4、函数的参数
5、函数的返回值

函数的返回值:
告诉调用者成功与否。
1、若没有返回值,则默认返回None
2、如果有返回值return 值,则赋值给变量
函数的参数:
普通参数
形式参数,形参 例如: def email(message) message:形参
实际参数,实参 例如: email("CPU 报警") "CPU 报警":实参
参数可以有n个
默认参数
def email(ff,aa,subject='nihao')
1、不传值,则使用默认值,默认参数必须放置到参数列表的最后。
动态参数
def func(*args)
1、接受多个参数
2、内部自动构造元组。
3、传序列是,前面加*,避免内部构造元组。
动态参数一传列表:
def func(*args)
print args[0]
li=[11,22,33]
func(*li)
动态参数二传字典:
def func(**kwargs):
print kwargs
1、func(k1=123,k2='qws')
2、dic={'k1':123,'k2':'qws'}
func(**dic)
动态参数三两者结合:
def func(*args,**kwargs)
文件操作
1、打开文件
open:推荐使用
file:3.0以后集成到别的地方,不建议使用
obj=open('log')
obj.tell():文件指针位置显示
obj.seek():指定指针位置,从哪个位置开始。
obj.truncate():根据当前指针的位置,截取指针前面的数据,指针后面的数据舍弃。如若里面有参数,那么就不管指针的位置,直接截取传入的参数的值的个数。
rb:以二进制方式打开只读
rU:把文件里面的\n\b\r,统一转换为\n
r+U:U只能跟r结合
2、操作文件
flush:刷新文件内部缓冲区
next:获取下一行数据,若不存在,则报错
read():读取内容,可以加参数,则只读参数个数的字符到缓冲区
xreadlines:只取一行
with
自动关闭文件,不用在关心是否关闭了
with open('log','r') as obj:
obj.write(XXXXX)
2.7以后支持:with open('log1','r') as obj1,open('log2','w') as obj2
for line in obj1:
new_line=line.replace()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: