day①:列表和元组
列表
列表是一组有序的数据集合,可以将各种各样的数据有序的存放在列表中,并且可以对其进行增删改查,以及遍历。
list.append(obj) # 向列表中添加一个对象obj
list.count(obj) # 返回一个对象obj在列表中出现的次数
list.extend(seq) # 把序列seq的内容添加到列表中
list.index(obj,i=0,j=len(list)) # 返回list[k] == obj 的k值,并且k的范围在i<=k<j;否则异常
list.insert(index.obj) # 在索引量为index的位置插入对象obj
list.pop(index=-1) # 删除并返回指定位置的对象,默认是最后一个对象
list.remove(obj) # 从列表中删除对象obj
list.reverse() # 原地翻转列表
list.sort(func=None,key=None,reverse=False) # 以指定的方式排序列表中成员,如果func和key参数指定,则按照指定的方式比较各个元素,如果reverse标志被置为True,则列表以反序排列
例子:
>>> shopping_list=['a','b','c','d','e','f'] >>> shopping Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'shopping' is not defined >>> shopping_list ['a', 'b', 'c', 'd', 'e', 'f'] ##切片 >>> len(shopping_list) #通过len()内置函数查找列表元素个数 6 >>> shopping_list[2] #第三个元素 'c' >>> shopping_list[0] #第一个元素 'a' >>> shopping_list[-1] #最后一个元素 'f' >>> shopping_list[-3] #倒数第三位元素 'd' >>> shopping_list[-4] #倒数第四个元素 'c' >>> shopping_list[8] #超出范围 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range >>> shopping_list[0:3] #取0到第三个元素,不包括第四个,0可以不写 ['a', 'b', 'c'] >>> shopping_list[:3] #同上 ['a', 'b', 'c'] >>> shopping_list[2:5] #取第3至第5个元素 ['c', 'd', 'e'] >>> shopping_list[:-3] #取从0至倒数第3个元素 ['a', 'b', 'c'] >>> shopping_list[-3:] #取最后3个元素 ['d', 'e', 'f'] >>> shopping_list[1:6:2] #1-6,每隔2个元素取1个 ['b', 'd', 'f'] >>> shopping_list[::2] #从头到尾每隔一个取一个 ['a', 'c', 'e'] ##增删改 >>> shopping_list.append('g') #向列表后面追加一个元素 >>> shopping_list ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> shopping_list.pop() #删除最后一个元素 'g' >>> shopping_list.remove('f') #删除叫”f“的元素,如果有多个f,那会从左边数找到的第一个 >>> shopping_list[2] 'c' >>> shopping_list[2]='C' #将索引为2的元素改成”C“,原来是小写的! >>> shopping_list ['a', 'b', 'C', 'd', 'e'] >>> shopping_list.insert(3,"haha") #插入一个新元素,索引为3 >>> shopping_list ['a', 'b', 'C', 'haha', 'd', 'e'] >>> shopping_list.index('haha') #返回‘haha’的索引值,如果有多个相同元素,则返回匹配的第一个 3 >>> shopping_list.append('haha') #再插多个进去 >>> shopping_list ['a', 'b', 'C', 'haha', 'd', 'e', 'haha'] >>> shopping_list.count('haha') #统计‘haha’的元素个数 2 >>> list2=['h','i','j'] #创建一个新列表 >>> shopping_list.extend(list2) #把上面的新列表合并到shopping_list >>> shopping_list ['a', 'b', 'C', 'haha', 'd', 'e', 'haha', 'h', 'i', 'j'] >>> shopping_list.sort() #将列表排序 >>> shopping_list ['C', 'a', 'b', 'd', 'e', 'h', 'haha', 'haha', 'i', 'j'] >>> shopping_list.reverse() #将列表反转 >>> shopping_list ['j', 'i', 'haha', 'haha', 'h', 'e', 'd', 'b', 'a', 'C'] >>> del shopping_list[3:8] #删除索引3至8的元素,不包括8 >>> shopping_list ['j', 'i', 'haha', 'a', 'C'] >>> for i in shopping_list: #遍历列表 ... print i ... j i haha a C
元组
1.介绍:另一种有序列表叫元组。tupel一旦初始化就不能修改里面的元素。
元组没有append()、extend()、remove()、pop()、index()、insert()这样的方法,其它获取元素的 方法和list是一样的。
然而您可以使用in来查看一个元素是否存在于tuple中
2、使用 tuple的好处:
1) Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。
2) 如果对不需要修改的数据进行 “写保护”,可以使代码更安全。
例子1:
>>> student=('yaobin','hy','nimei') >>> student[0] 'yaobin' >>> student[1] 'hy' >>> student[1]='hyhy]' #不能修改 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> t = (1,2) >>> t (1, 2) >>> t = () #空元组 >>> t () >>> t = (1) #定义的不是元组了,是1这个数 >>> t 1 >>> t = (1,) #防止歧义,要加, >>> t (1,) #这个才是元组
例子2:可以修改元组的元素的元素
>>> a=('a',[11,22,33]) #定义一个元组 >>> a ('a', [11, 22, 33]) >>> type(a) <type 'tuple'> >>> a[1] [11, 22, 33] >>> a[0] 'a' >>> a[1][0] 11 >>> a[1][0]=111 #修改第二个元素列表里的第一个元素里面的东西 >>> a ('a', [111, 22, 33]) >>> a[1][1]=222 #修改第二个元素列表里的第二个元素里面的东西 >>> a[1][2]=333 #修改第二个元素列表里的第三个元素里面的东西 >>> a ('a', [111, 222, 333]) >>> a[1] [111, 222, 333] >>> a[1]=[1111,2222,3333] #你不能把这个列表改了,或者删了! Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment