列表类型
-
列表在python是一种很常用的数据类型,它是一种有序且可迭代的类型,可以存放多个值,以逗号作为分割符
-
列表可以进行切片取值
-
可以存储任意类型的值
-
可以对任意值进行修改
-
-
列表的简单操作
# 首先定义一个列表 (通过一对中括号以逗号作为分割符存储) >>> my_list = [1,2,3,(4,5),{'6': 7}] >>> my_list[0:3] # 通过切片取值 顾头不顾尾 [1, 2, 3] >>> my_list[4]['6'] 7 >>> my_list[3][1] 5 # 修改列表的值 >>> my_list[0] = '一' >>> my_list[4]['6'] = '六' >>> my_list ['一', 2, 3, (4, 5), {'6': '六'}] # 删除列表的值 >>> del my_list[3] >>> my_list ['一', 2, 3, {'6': '六'}] # 列表的运算操作 (+ 表示拼接,* 表示显示多次) >>> my_list = [1,2,3,4,5] >>> my_list2 = [6,7,8,9,10] >>> my_list += my_list2 >>> my_list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> my_list * 3 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 嵌套列表 (理论上可以嵌套无数层列表) >>> my_list = [1,2,3,[4,5,[6,7,[8]]]] >>> my_list [1, 2, 3, [4, 5, [6, 7, [8]]]] # 问题: 怎样取出列表里面的值 “8”?
-
列表的内置方法
# 通过dir函数查看一下列表的内置方法
>>> dir(list) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
# 常用的内置方法示例>>> my_list = [1,2,3,4,5] # append (在列表末尾添加值) >>> my_list.append(6) >>> my_list [1,2,3,4,5,6] # insert (在指定索引位置添加值) >>> my_list.insert(3,'A') >>> my_list [1, 2, 3, 'A', 4, 5, 6] # extend (在立标末尾一次性添加多个值,要传递一个可迭代的对象) >>> my_list.extend([1,3,5]) >>> my_list [1, 2, 3, 'A', 4, 5, 6, 1, 3, 5] # index (根据索引查找值) >>> my_list[3] 'A' >>> my_list[5] 5 >>> my_list[7] 1 # count (统计出现了多少次) >>> my_list.count(1) 2 >>> my_list.count('A') 1 # reverse (会改变原列表的值) >>> list1 = [1,2,3,4,5] >>> my_list.reverse() >>> my_list [5,4,3,2,1] # 额外扩展一个内置函数 reversed (不会改变原列表的值) >>> list1 = [1,2,3,4,5] >>> list(reversed(list1)) [5,4,3,2,1] >>> list1 [1,2,3,4,5] # sort (对列表进行排序,会改变原列表的值) >>> my_list = [1,7,5,9,3,1,2] >>> my_list.sort() >>> my_list [1, 1, 2, 3, 5, 7, 9] # 额外扩展一个函数 sortd (不会改变原列表的值) >>> my_list = [1,7,5,9,3,1,2] >>> sorted(my_list) [1, 1, 2, 3, 5, 7, 9] >>> my_list [1, 7, 5, 9, 3, 1, 2] # 字符串排序是根据首字母大小,如果相同则比较第二个字母 >>> str_list = ['name','age','sex'] >>> sorted(str_list) ['age', 'name', 'sex'] # sorted函数还可以传递其他的参数来做额外的控制 >>> sorted(my_list,reverse=True) # 将结果翻转 [9, 7, 5, 3, 2, 1, 1] >>> my_list = [1,2,3,4] # pop (通过索引弹出一个值并显示) >>> my_list = [1,2,3,4] >>> my_list.pop(1) 2 >>> my_list.pop(1) 3 >>> my_list [1, 4] # remove (通过传递值进行删除,不显示删除结果) >>> my_list.remove(1) >>> my_list [4] # copy (拷贝一个列表) >>> list_cp = my_list.copy() >>> list_cp [4] # clear (清空一个列表) >>> list_cp.clear() >>> list_cp [] # del (删除) >>> del list_cp >>> list_cp Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'list_cp' is not defined