python学习五

来源:互联网 发布:甘肃启航网络待遇 编辑:程序博客网 时间:2024/05/29 13:19


使用map实现元组遍历:
使用map进行解包操作:
userTuple1 = ('01','02','03')
userTuple2 = ('04','05','06')
userTuple = (userTuple1,userTuple2)
for item in map(None,userTuple):
 for i in item:
  print(i)

字典的创建:
字典其实就是key-value键值对
创建如下:
dictionary_name = {}
userDic = {'0003':'June','0002':'Tom'}
print(userDic)
使用dict()创建字典:
1,将列表解包
userDic = [(1,'a'),(2,'b'),(3,'c')]
dic_userDic = dict(userDic)
print(dic_userDic)
还可以通过关键字来创建字典:
userDic = dict(name='maxianglin',age=24,sex='0')
print(userDic)

字典的基本操作:

如果需要向字典中插入一个新的元素,则可以调用setdefault()方法,该方法可以创建一个新的元素并设置默认值
setdefault(key[,default_value])
使用setdefault方法向字典中添加元素
userDic = {'01':'ml','02':wl,'03':'mn'}
#添加元素
userDic.setdefault('04','ao')
#输出添加元素后的值
print(userDic)
#像列表中添加值,但是参数01已经在userDic中存在
userDic.setdefaule('01','zf')
print(userDic)
使用赋值语句向字典中添加元素,只需要一条赋值语句
dictonary_name['key'] = 'value'
userDic = {'01':'mx','02':'wl','03':'mn'}
#添加一个新元素
userDic['04']='zf'
#修改键值02的值
userDic['02'] = 'xx'
print(userDic)

#删除字典中原有的元素
字典和列表不同,字典中没有remove()函数
#使用del()函数方法删除字典中的元素
del(dictionary_name[key])
#使用pop()方法删除字典中的值
pop(key[,default_value])
必须指定参数
userDic = {'01':'mg','02':'wi','03':'mn'}
print(userDic.pop('02'))
print(userDic)
#使用del保留字删除字典中的元素
del dictionary_name[key]
userDic = {'01':'mg','02':'wi','03':'mn'}
del userDic['01']
print(userDic)

字典遍历
访问字典通过key值来获取所对应的value值
value = dictionary[key]

userDic = {'01':'mx','02':'wl','03':'mn'}
print(userDic['03'])

使用for ... in 循环遍历字典
与python中的其他数据结构相同,可以采用for...in循环遍历字典。
userDic = {'01':'mx','02':'wl','03':'mn'}
for key in userDic:
 print('userDic[%s]=' %key,userDic[key])
类似c语言中的指定输出类型。

使用items方法遍历字典,专门提供了一个用来遍历字典的方法。
userDic = {'01':'mi','02':'wl','03':'mn'}
print(userDic.items())
输出使用items()方法之后的列表
for (key,value) in userDic.items():
 print('userDic[%s]='%key,value)

#只要items方法生效就通过遍历输出key 和value值

使用iteritems(),iterkeys(),itervalues()方法实现
userDic = {'001':'mx','002':'wl','003':'mn'}
 for(key,value) in userDic.iteritems():
  print(userDic[%s],key,value)

#下面使用iterkeys()方法和itervalues()方法来创建一个示例
for key in userDic.iterkeys():
 print(key)
for value userDic.iterValues():
 print(value)
for (key,value) in zip(userDic.iterkeys(),userDic.itervalues()):
 print('userDic[%s]='key,value)

#字典的方法
#像其他内建类型一样,字典有很多重要的方法。
clear()方法,用于清除字典中的所有项,该方法的语法格式
dictionary_name.clear(),返回结果为None或者{}
copy()方法,copy方法返回一个具有相同键值对的新的字典
dictionary_targetName = dictionary_sourceName.copy()
copy之后的字典不受原来的字典的影响

fromkeys()方法
dictionary_name.fromkeys([key1,key2,...],(default_value))

userDic.fromkeys(['01','02'])
默认输出None,指定默认值是所有的vaue值都为指定的值,不影响原来的列表的值

get()方法
get方法用于访问字典中的元素,返回value值,如果没有则返回None

userDic.get('key')
当使用get()方法访问一个不存在的键时,不会出现任何的异常,而得到的是None值
get()方法还有一个技能,就是如果不存在是可以指定输出的值,比如不是None而是其他什么鬼

has_key()方法
has_key()方法可以检查字典中是否有指定元素,如果含有,返回True,否则返回False
dictionary_name.has_key(key)

3.0版本删除了这个方法,判断改成is key in list

改成了 key in dict 有则为True,没有则为False

popitem()方法
该方法类型列表的pop方法,不过这个方法弹出的是随机的元素

dictionary_name.popitem()
如果遇到需要逐一删除项的工作,用popitem()方法效率很高

update()方法,利用一个字典更新另外一个字典,无返回值
update_dictionary.update(source_dictionary) source_dictionary为要更改的字典

实例:
userDic ={'001':'mx','002':'wl','003':'mn'}
newDic = {'002':'zhangfang'}
#使用update方法更新userDic 字典中的键为002的元素
userDic.update(newDic)
#如果更改的元素不存在则会添加为新的元素

#序列
列表,元组和字符串都是序列,序列的两个主要特点就是索引操作和切片操作,索引操作符可以从序列中抓取一个特定的元素项,切片可以获取序列的一个切片。
序列的所有的元素都具有编号,索引从0开始。
userStr = 'maxianglin'
userTuple = ('maxxianglin','wangling','wangjunchao')
userList = ['maxianglin','wanglili','wangjunchao']
print(userStr[0])
print(userStr[-2])
print(userTuple[-2])
print(userList[2])

#基础知识,序列的切分
与使用索引来访问单个元素类似,可以使用分片操作来访问一定范围内的元素,分片通过冒号相隔的两个索引来实现。分片操作对提起序列中的部分数据很有用,
而索引在这里显得尤为重要,第一个第一个索引是需要提取部分的第一个元素的索引,而最后的索引则是分片之后剩下部分的一个元素的索引。
numbers = [0,1,2,3,4,5,6,7,8,9]
print(numbers[3:6])  #---第四个到第七个元素的值
可以只指定起始位置
print(numbers[7:])
还可以倒过来
print(numbers[-3:])
还可以设置步长
print(numbers[0:10:2])
所以还可以这样
print(numbers[::3])
#基础知识,序列的相连
通过使用加号,可以进行序列的相连
numbers = [0,1,2,3]+[4,5,6,7]
print(numbers)
#除了列表可以相连之外,元组,字符串和字符串之间都可以使用+号相连,但是不同类型的序列不能进行相连操作,比如字符串和列表
#序列的乘法
userIdStr = '001'*6
print(userIdStr)
userIdList = ['001']*5
print(userIdList)


0 0
原创粉丝点击