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

Python学习之字典与控制语句

2014-12-30 19:13 375 查看
1.字典是Python中唯一内建的映射类型,其创建格式如下:m = {"key1":"value1",...,"keyn":"valuen"},实际上字典的创建也可以通过对二元元组列表使用dict方法得到:items = [('name','Gumby'),('age',42)]; d = dict(items);或者d = dict(name = 'Gumby',age = 42); #结果是一致的

2.字典的主要方法类似列表方法:

len(d) #给出字典长度

d[k] #返回键值为k的元素值,不存在则报错

d[k] = v #将字典d中键值k与值v绑定,如果k不存在则添加

del d[k] #删除字典d中键值为k的元素

k in d #判断键k是否包含于字典d

3.字典对于字符串格式化输出也有所助益:

>>>phonebook = {'Beth':'9102','Alice':'2314','Cecil':'5623'};

>>>"Cecil's phone number is %(Cecil)s." % phonebook

"Cecil's phone number is 5623."

可以看到,在%s中间嵌入键值(括号括起来)就能将字典中相应的值嵌入到输出字符串中。

4.字典除了第2点提到的一些基本方法外,还有一些常用的方法:

d.clear() #将d中所有数据清除掉

c=d.copy()#浅复制,将d中的键值都复制过去,但键值所指的位置未发生变化,可将键值看成一个个的子变量,这些子变量也是通过引用计数完成的,如此,当对键值进行赋值操作时,两者互不干扰,但修改时,实际上是统一完成的

dc=d.deepcopy()#深度复制,完全不相干,需要from copy import deepcopy

dict.fromkeys(['name','age'],'default')#从列表给定的键值中创建字典,对应默认值在第二个参数给出,若忽略则默认为None

d.get('name')#获取键'name'对应的值,比d['name']优秀的一点在于,当键值不存在时,会返回None而非报错

d.has_key('name')#判断此键是否在字典中,返回True/False

d.items(),it=d.iteritems()#分别返回列表,列表迭代器

d.keys(),it=d.iterkeys()#分别返回键列表,键列表迭代器

d.values(),it=d.itervalues()#分别返回值列表,值列表迭代器

d.pop(key)#将键对应的元素删除,并返回对应的值

d.popitem()#因为字典没有最后一个的说法,所以随机弹出元素

d.setdefault(key,value)#读取key对应的值,如果key不存在或者无值,则将之设置为默认值value

d.update(d1)#将字典d1中现有项添加到字典d中,如果已经存在同名项,则覆盖替换

5.当需要导入两个模块中的同名方法时,为了避免重复,在使用时要么用模块名进行限定:import module1;import module2;module1.open();,或者对导入的方法使用别名,from module1 import open as open1;

6.赋值语句的魔法:

x,y,z = 1,2,3 #对x,y,z分别赋值1,2,3

x,y = y,x #将x,y进行交换,可以推广到更多个

values = 1,2,3 #结果中values变成了元组,之后x,y,z=values,则x得到了1,此称之为序列解包,将元组元素逐个赋值,需要保证元素个数相等,否则印发异常

x=y=z #链式赋值

x+=2,x*=5

7.Python中用缩进来区别语句块,条件语句,选择语句,循环模块均是如此

8.Python中除了False,0,“”等空值会被解释成False外,其余值均会被解释成真值True

9.条件语句(可嵌套缩进):

if expr:

sentence

elif expr:

sentence

else:

sentence

Python中的比较运算符给出如下:x==y,x<y,x>y,x>=y,x<=y,x!=y,x is y,x is not y, x in y, x not in y #not在Python中表示非,and or not,is与==是不同的,==用于比较值是否相等,而is用以判断两变量所指是否是同一位置的内存,在多个表达式用逻辑运算符and,or,not连接起来时,依然与C++类似,遵循短路逻辑原则,判断一个就够了的话坚决不判断第二个表达式,此外python还支持连续判断表达式,如x<y<z,相当于x<y
and y<z

10.Python的断言句,assert x<y<z 当语句不满足时,将会在此报出异常

11.循环语句,格式与条件判断语句相类似:

x=1

while x<100:

sentence1

sentence2

print x

words = ['this','is','a','good','book']

for word in words:

print word #word 会自动向前进一

12.range(1,4),[1,2,3],左闭右开,相当于[1:4]的索引值,range用以将整个序列创建出来,而xrange则可以一次性只创建一个,当序列较大时,用xrange效率更高,而range(n),相当于range(0,n)

13.对于循环语句而言,break,continue依然可以使用

14.python还提供了一些特殊语句:

pass #无任何作用,仅用做占位

del x#直接将x删除,一并删除其占用的空间,其余指向x的引用将不再可用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: