9.4.5 排序(sort, reverse)
sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
reverse方法是将list逆置。
a = [1, 4, 2, 3] a.reverse() print(a) a.sort() print(a) a.sort(reverse=True) print(a)
[3, 2, 4, 1] [1, 2, 3, 4] [4, 3, 2, 1]
9.5 元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号(),列表使用方括号[],例:
aTuple = ('et',77,99.9) print(aTuple)
('et', 77, 99.9)
9.5.1 访问元组
aTuple = ('et',77,99.9) print(aTuple[0]) print(aTuple[1])
et 77
9.5.2 修改元组
aTuple = ('et',77,99.9) aTuple[0]=111
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-2-5bd230fa08e7> in <module> 1 aTuple = ('et',77,99.9) ----> 2 aTuple[0]=111 TypeError: 'tuple' object does not support item assignment
从上面的运行结果可以得出: python中不允许修改元组的数据,包括不能删除其中的元素。
9.5.3 元组的内置函数count, index
index和count与字符串和列表中的用法相同
a = ('a', 'b', 'c', 'a', 'b') a.index('a', 1, 3) # 注意是左闭右开区间
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-3-9f690396d394> in <module> 1 a = ('a', 'b', 'c', 'a', 'b') ----> 2 a.index('a', 1, 3) # 注意是左闭右开区间 3 a.index('a', 1, 4) 4 a.count('b') 5 a.count('d') ValueError: tuple.index(x): x not in tuple
a.index('a', 1, 4) a.count('b') a.count('d') 0
9.6 字典
字典是一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
9.6.1 根据键访问值
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} print(info['name']) print(info['address'])
学姐 中国上海
若访问不存在的键,则会报错在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:
age = info.get('age') age #'age'键不存在,所以age为None type(age)
NoneType
age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18 age
18
9.7 字典的常用操作
9.7.1 修改元素字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改,例:
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} info['id'] = 88888 print('修改之后的id为:%d' % info['id'])
修改之后的id为:88888
9.7.2 添加元素使用 变量名[‘键’] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素,例:
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} newId = input('请输入新的ID') info['id'] = int(newId) print('添加之后的id为:%d' % info['id']) print(info)
添加之后的id为:121212 {'name': '学姐', 'id': 121212, 'sex': 'f', 'address': '中国上海'}
9.7.3 删除元素对字典进行删除操作,有一下几种:
del
clear()
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} print('删除前,%s' % info['name']) del info['name'] print('删除后,%s' % info['name'])
删除前,学姐 --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-12-2de356cae191> in <module> 2 print('删除前,%s' % info['name']) 3 del info['name'] ----> 4 print('删除后,%s' % info['name']) KeyError: 'name'
del删除整个字典
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} print('删除前,%s' % info) del info print('删除后,%s' % info)
删除前,{'name': '学姐', 'id': 99999, 'sex': 'f', 'address': '中国上海'} --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-13-b6d7faa775d5> in <module> 2 print('删除前,%s' % info) 3 del info ----> 4 print('删除后,%s' % info) NameError: name 'info' is not defined
clear清空整个字典
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} print('清空前,%s' % info) info.clear() print('清空后,%s' % info)
清空前,{'name': '学姐', 'id': 99999, 'sex': 'f', 'address': '中国上海'} 清空后,{}
9.7.4 字典的长度
使用len()方法,求字典的长度,例:
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} print('字典的长度:%d' % len(info))
字典的长度:3
9.7.5 找出字典中的所有key
keys返回一个包含字典所有KEY的视图对象,例:
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} dicKeys=info.keys() print(dicKeys) print(dicKeys[0])
dict_keys(['name', 'id', 'sex', 'address']) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-16-a986187e4301> in <module> 2 dicKeys=info.keys() 3 print(dicKeys) ----> 4 print(dicKeys[0]) TypeError: 'dict_keys' object is not subscriptable
9.7.6 找出字典所有的value
属性values返回一个包含字典所有value的视图列表,用法同上,例:
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} dicvalues=list(info.values()) print(dicvalues) print(dicvalues[0])
['学姐', 99999, 'f', '中国上海'] 学姐
9.7.7 找出字典的(键,值)
属性items,返回一个包含所有(键,值)元祖的列表
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} dicItems=info.items() print(dicItems)
dict_items([('name', '学姐'), ('id', 99999), ('sex', 'f'), ('address', '中国上海')])
9.7.8 判断key是否存在
“key in dict"如果键在字典dict里返回true,否则返回false,例:
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} ss='name' in info print(ss)
True
9.7.9 遍历字典的几种方式
1) 遍历字典的key(键)
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} for key in info.keys(): print(key)
name id sex address
2) 遍历字典的value(值)
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} for key in info.values(): print(key)
学姐 99999 f 中国上海
3) 遍历字典的项(元素)
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} for item in info.items(): print(item)
('name', '学姐') ('id', 99999) ('sex', 'f') ('address', '中国上海')
4) 遍历字典的key-value(键值对)
info = {'name':'学姐', 'id':99999, 'sex':'f', 'address':'中国上海'} for key, value in info.items(): print("key=%s,value=%s" % (key, value))
key=name,value=学姐 key=id,value=99999 key=sex,value=f key=address,value=中国上海