作者:Vamei 出处:http://www.cnblogs.com/vamei
01、词典
词典的元素没有顺序。不能通过下标引用元素。词典是通过键来引用。
词典的常用方法:
dic.keys() # 返回dic所有的键
dic.values() # 返回dic所有的值
print dic.items() # 返回dic所有的元素(键值对)
dic.clear() # 清空dic,dict变为{}
dic.values() # 返回dic所有的值
print dic.items() # 返回dic所有的元素(键值对)
dic.clear() # 清空dic,dict变为{}
del dic['tom'] # 删除 dic 的‘tom’元素
print(len(dic))#词典中元素的总数
dic={
'DXT':"美女",
'DWH':"炖胎1",
'LSQ':"炖胎2",
'MAOMAO':"炖炖胎"
}
print (type(dic))
print (dic['DXT'])
print (dic['MAOMAO'])
print(dic)
print(dic.keys())
print(dic.values())输出:<class 'dict'>美女
炖炖胎
{'DXT': '美女', 'DWH': '炖胎1', 'LSQ': '炖胎2', 'MAOMAO': '炖炖胎'}
dict_keys(['DXT', 'DWH', 'LSQ', 'MAOMAO'])
dict_values(['美女', '炖胎1', '炖胎2', '炖炖胎'])
- 词典元素的循环调用
for key in dic:
print(dic[key])
02、文本的输入与输出
打开文件:
f=open("test.txt","r") #"r"是读文件
f=open("test.txt","rb")#"rb"是读二进制文件
f=open("test.txt","w")#"w"是写文件
f=open("test.txt","a") #"a"是在文件后追加写
读文件:
content=f.read()#读取所有内容
content=f.read(100)#读100字节
content=f.readlines( )#读一行
content=f.readlines( )#读每行
如果文件是文本文件,还可以直接遍历文件对象获取每行:
for line in content:
print(line)写文件:
f=open("test.txt","a")#在文件后追加写
f.write('I am writing!')
f.close()
f.writelines(list_of_text_strings)#写入多行
03、模块
引入模块
我们先写一个first.py文件,内容如下:
def laugh():
print 'HaHaHaHa'
再写一个second.py,并引入first中的程序:
import first
for i in range(10):
first.laugh()在second.py中,我们使用了first.py中定义的laugh()函数。
引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。上面例子中,first为引入的模块,laugh()是我们所引入的对象。
Python中还有其它的引入方式,
import a as b # 引入模块a,并将模块a重命名为b
from a import function1 # 从模块a中引入function1对象。调用a中对象时,我们不用再说明模块,即直接使用function1,而不是a.function1。
from a import * # 从模块a中引入所有对象。调用a中对象时,我们不用再说明模块,即直接使用对象,而不是a.对象。
这些引用方式,可以方便后面的程序书写。
搜索路径
Python会在以下路径中搜索它想要寻找的模块:
- 程序所在的文件夹
- 标准库的安装路径
- 操作系统环境变量PYTHONPATH所包含的路径
如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。
04、参数传递之包裹传递
包裹传递
在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会非常有用。
def func(*name):
print(type(name))
print(name)
func('DXT','MAOMAO')
func(1,2,3)在func的参数表中,所有的参数被name收集,根据位置合并成一个元组(tuple),这就是包裹位置传递。
为了提醒Python参数,name是包裹位置传递所用的元组名,在定义func时,在name前加*号。
输出:<class 'tuple'>
('DXT', 'MAOMAO')
<class 'tuple'>
(1, 2, 3)当传递的是字典时,在name前加**号:def func1(**dict):
print(type(dict))
print (dict)
func1(a=1,b=44)输出:<class 'dict'>
{'a': 1, 'b': 44}
解包裹
*和**,也可以在调用的时候使用,即解包裹(unpacking)
- 对tuple的解包裹:
def func2(a,b,c):
print(a,b,c)
args=(1,3,4)
func2(*args)所谓的解包裹,就是在传递tuple时,让tuple的每一个元素对应一个位置参数。在调用func时使用*,是为了提醒Python:我想要把args拆成分散的三个元素,分别传递给a,b,c。- 对字典的解包裹:
dict2={
'a':1,
'b':2,
'c':3
}
func2(**dict2)输出:1 2 3在传递词典dict时,让词典的每个键值对作为一个关键字传递给func。
本文介绍了Python中的词典操作、文件读写、模块导入方法及参数传递技巧。包括词典的增删改查、文件的打开与读写、不同方式导入模块以及如何使用包裹传递参数。
2426

被折叠的 条评论
为什么被折叠?



