tuple唯一和list定义的区别就是[]变成了(),其他没有什么变化,tuple不能增加和减少里面的元素(不可增加或删除里面的元素),它本身自己的方法很少,只有count和index两个方法,其他的list方法都不可用
e)字典
字典是以key:value的形式,字典是另一种可变容器模型,且可存储任意类型对象
字典的每个键值(key=>value)对 用冒号(:)分割,每个对 之间用逗号(,)分割,整个字典包括在花括号{}中,字典赋值有三种方式:
1.字典赋值方式一:
k = {‘name‘:‘YJB‘,‘age‘:20,‘sex‘:‘man‘}
print(k)
print(type(k))
返回结果为:
2.字典赋值方式二:
#list(‘abcdefg‘) 这是列表, tuple(‘hijkml‘) 这是元组形式,字典也可以直接用dict表示
k1 = dict(a=1,b=2,c=3)
print(k1)
print(type(k1))
打印结果为:
3.字典赋值方式三(这种方法不常用):列表里面是元组的方式
d = dict([(‘name‘,‘YJB‘),(‘age‘,28)]) #这里面是一个列表,先外面是一个dict函数,里面是一个列表 ,列表里面是两个元组,
print(d)
打印结果为:
字典常用的方法:
print(dir(d))
clear:清除字典里面的元素,不常用
print(k1)
k1.clear()
print(k1)
打印结果为:
get:获取Key值的Vlue
print(k.get(‘name‘))
print(k.get(‘age‘))
print(k.get(‘ab‘))#如果里面没有的话会返回一个空值
打印结果为:
setdefault:跟get一样也是为了获取键值,当去获取值时,如果有值则会去获取本身的值,如果key没有值则可以设置(增加)一个默认值
print(k.setdefault(‘name‘))
print(k.setdefault(‘age‘))
print(k.setdefault(‘ab‘))
print(k.setdefault(‘ab‘,‘@@@‘))
print(k.setdefault(‘abc‘,‘123‘))
打印结果为:
keys:列出所有的key值
print(k)
print(k.keys())
打印结果为:
iterkeys:跟keys相关,这是一个对象,后面会讲
print(k.iterkeys())
打印结果为:
values:只把key的值给打印出来
print(k.values())
打印结果为:
iteritems:得到的也是一个对象,然后怎么取得或者获得这个对象呢?当你用到的时候一一取出来的时候才会显示,不取会搞成对象,取一次用一次,会用到for循环。如果光打印出k.iteritems()的话,
print(k.iteritems())
for k,v in k.iteritems():
print(k,v)
打印结果为:
print(k.iteritems()) #这是一个对象,推荐用这个,取一次用一次,如果要得到所有的键值,如果把所有的键值都给取出来后都是放到内存中去的,所以取一次用一次
print(k.items()) #搞出来之后这是一个列表,列表里面每个小元素是元组
for x, y in k.iteritems():
print(x, y)
打印结果为:
pop:删除指定的key值(不能放value值,否则会报错,只能写Key)
print(k)
k.pop(‘name‘)
print(k)
打印结果为:
fromkeys:从一个列表中获得Key
#有一个需要,把l的值当成m的字典
l = [‘a‘,‘b‘,‘c‘,‘d‘]
m = {}
#n=m.fromkeys(l,123) #赋值所有的一个默认值为123
n=dict.fromkeys(l,124)#上面也可以这么写也是成立的
print(n)
打印结果为:
zip:zip是一个涵数,把两个列表进行叠加合并成一个字典(偶然会用),
#如果有两个字典的话,把l1当成key,把l2当成value
h1 = [‘a‘,‘b‘,‘c‘,‘d‘]
g2 = [1,2,3,4]
dict_test = zip(h1,g2)
print(dict_test)
打印结果为:
update:合并字典
#如果有两个字典的话,把l1当成key,把l2当成value
h1 = [‘a‘,‘b‘,‘c‘,‘d‘]
g2 = [1,2,3,4]
k = {‘name‘:‘YJB‘,‘age‘:20,‘sex‘:‘man‘}
dict_test = dict(zip(h1,g2))
print(dict_test)
print(k)
#把上面第一个字典增加到第二个字典里面去,进行合并,把两个字典进行叠加
dict_test.update(k)
print(dict_test)
打印结果为:
soft:对字典进行排序
按Ctrl键单击可以查看这个涵数是怎么写的
#对字典进行排序soft,下例是按照value进行排序的
mm = dict(a=1,b=10,c=3,d=9)
print(mm)
print sorted(mm.iteritems(),key = lambda d:d[1],reverse = True) #lambda是一个匿名涵数,d是一个参数
print sorted(mm.iteritems(),key = lambda d:d[1],reverse = False)
打印结果为: