4.列表
列表是可变对象,可以包含任何种类的对象
1)列表的常用操作
L = [] #空列表
L =list(range(-4,4)) #连续整数列表
for x in L: print (x) #打印列表内容
L.append(4) #增长,排序,搜索插入,反转等
L.extend([5,6,7])
L.insert(I,X)
L.Count(x)
L.sort()
L.reverse()
del L[k] #缩短
del L[i:j]
L = [x**2 for x in range(5)] #列表解析
2)索引和分片的赋值
可以理解为先删除再插入(实际并非如此),有助于理解索引和分片的很多操作,例如L[1:2]=[]实际上是删除操作等等。
3)列表方法调用
L.append('a') #列表末尾增加'a'
L.sort() #排序
append和'+'不同,append在原地修改,'+'产生一个新对象,因此运算更快
sort函数可以通过传入关键字参数来修改排序行为——这是制定按名称传递的函数调用中特殊的“name=value”语法。
L.sort(key=str.lower) #字符串按小写排序,大写时'B'<'a',调用此方法后,'B'字符串就会被排在'a'前面
L.sort(key=str.lower, reverse=True) #反向排序
5.字典
字典是无序的集合,和列表的主要差别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
1)常见字典常量和操作(可以通过dir(dict)或help(dict)查看)
2)字典用法注意事项
序列运算无效(分片等),字典是映射机制,不是序列。
键不一定总是字符串,任何不可变对象都是可以的(也就是不是列表)
3)字典用于稀疏数据结构
可以用一个字典 表示一个三维数组,只记录非空元素,键是元组,记录坐标。通过这一方式读取空元素时,会触发键不存在的异常。
可以用D.get((1,2,3), 0)语句,(1,2,3)坐标处为0时返回0,非零时返回其值。