第7章 数据结构
Python提供的主要数据结构包括:元组、列表、字典和集合。其中又以列表和字典为主,列表按顺序存储数据,而字典像小型数据库,使用键高效地存储和检索数据。
一、type命令
某些情况,需要检查值或者变量的数据类型,就需要使用内置命令type。
如:
type(5)
#numnote.py
def numnote(lst):
msg=[]
for num in lst:
if num<0:
s=str(num)+' is negative'
elif 0<=num<=9:
s=str(num)+' is adigit'
msg.append(s)
return msg
numnote([1,5,-6,22])
[‘1 is adigit’, ‘5 is adigit’, ‘-6 is negative’, ‘-6 is negative’]
六、列表排序
函数sort()总是按升序排列元素,如果要按相反顺序,则在调用sort后再调用reverse函数。
七、列表解析
列表解析是一种用于创建列表的特殊表示法,如下例
[n*n for n in range(1,11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
可以快捷的创建列表。
如果要创建一个列表,它包含前10个自然数的立方,则如下:
[n*n*n for n in range(1,11)]
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
也可以:
[c for c in ‘apple’]
[‘a’, ‘p’, ‘p’, ‘l’, ‘e’]
列表解析还有一种常见的用途,是以某种方式修改现有列表:
lista=[‘apple’,’banana’,’peal’]
listA=[c.capitalize() for c in lista]
lista
[‘apple’, ‘banana’, ‘peal’]
listA
[‘Apple’, ‘Banana’, ‘Peal’]
又如:
nums=[-1,2,8,-65,9,13]
results=[num for num in nums if num>=0]
results
[2, 8, 9, 13]
八、字典
Python字典利用存储键-值对实现效率极高的数据结构。通过大括号表示。
color={‘red’:1,’blue’:2,’green’:3}
color
{‘red’: 1, ‘blue’: 2, ‘green’: 3}
其中,’red’为键,对应的值为1。
与列表类似,字典也是可变的。
但对于字典来说,字典键必须是唯一的,而且必须是不可变的。而对于值没有这些要求。
1、字典函数
d.items():返回一个由字典d的键-值对组成的视图
d.keys():返回一个由字典d的键组成的视图
d.values():返回一个由字典d的值组成的视图
d.get(key):返回与key相关联的值
d.pop(key):删除键key并返回与之相关联的值
d.popitem():返回并删除字典d中的某个键值对
d.clear():删除字典d中所有元素
d.copy():复制字典d
d.fromekeys(s,t):创建新字典,其中键来自s,值来自t
d.setdefault(key,.v):如果键key包括在字典d中,则返回其值;否则返回v并将(key,v)添加到字典d中
d.update(e):将e中的键值对添加到字典中d中;e可能是字典,也可能是键值对序列