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的引用将不再可用
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的引用将不再可用
相关文章推荐
- python学习小结2:if和while控制语句
- python 学习笔记-山寨携程(列表,字符串,字典和流程控制总结)
- 轻松学习python part2-控制语句
- Python简单学习(lecture3)编程、条件控制、循环语句、迭代器和生成器
- python学习之路-第二天-常见的注意事项(代码风格、运算符、优先级、控制语句)
- L01-03:python学习之控制语句
- Python3 学习手册(二) 流程控制语句
- Python基础,基本类型(整型,浮点数等)数据结构(List,dic(Map),Set,Tuple),控制语句(if,for,while,continue or break):来自学习资料
- Python学习笔记(3)——流程控制的语句
- python学习小结1:for循环控制语句
- python学习 流程控制语句详解
- Python学习日记---控制语句(一)
- python学习(基础补充)--字典、条件语句、循环
- Python学习--控制语句:if, while, for, break, continue
- Python学习日记---控制语句(二)
- Python3.3 学习笔记7 - 控制语句
- python学习-控制语句
- Python基础语法学习--条件控制与循环语句
- Python 学习从入门到放弃(三)--变量与函数基础、基础控制语句
- python学习笔记:第六天(流程控制语句)