任何编程语言都免不了对数据的处理,而变量存在的意义就是方便数据的存取,但是在特定情况下我们需要对很多的数据处理,如果都一一定义变量那未免太繁琐了。Python提供了一种高级数据类型可以同时存放多个数据值,就是列表。
列表的语法:
列表名 = [元素1,元素2,元素3.......元素n]
列表名符合一般变量的命令规范,[]里面存放数据,每两个数据之间以逗号隔开。例:
list_test = [1,2,3,4,5]
列表的基本特性:
1.列表中每个元素与索引的关系:第n个元素的索引是n-1,n最小是0;
2.使用print()输出列表中的指定元素:print(list_test[0]),即输出列表中的第一个元素;
3.使用print()输出列表中的所有元素:print(list_test)
4.若列表中的共有n个元素,那么最大的索引是n-1,不存在索引超过n-1的元素;
5.一个列表中的元素可以是不同类型,如 test = [1,2.2,"第三个元素",True,False];
6.获得类型,使用type()方法;
元素增加:
三个方法:append(),insert(),extend()
list_test = [1,2,3,4,5] list_test.append(True) # 在末尾加入一个元素 print("list_test:",list_test) # 结果:list_test: [1, 2, 3, 4, 5, True] list_test.insert(5,"zhangsan") # 在指定的索引位置插入一个元素,若该索引有元素,依次后移一位 print("list_test:",list_test) # 结果:list_test: [1, 2, 3, 4, 5, 'zhangsan', True]
append()和extend()的区别:
extend()里面写的是一个可迭代的对象(列表、字符串都是可迭代的对象),会把可迭代对象的里的每个元素取出来然后依次加入指定列表中;
append()里面也可以写一个可迭代的对象,但是它会将该对象看成一个整体加入指定列表中。
list1 = [1,2,3] list2 = [4,5,6] list3 = [7,8,9] str = "hello world" list1.append(list3) list2.extend(list3) print(list1) # [1, 2, 3, [7, 8, 9]] print(list2) # [1, 2, 3, [7, 8, 9]] list1.append(str) list2.extend(str) print(list1) # [1, 2, 3, [7, 8, 9], 'hello world'] print(list2) # [4, 5, 6, 7, 8, 9, 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
元素删除:
方法与方式:
1.使用remove()方法,括号中写要删除的元素;
2.pop()方法,返回删除的元素,默认删除最后一个元素,里面也可以写一个索引值;
3.clear()清空列表
4.使用del关键字,del 列表名[元素索引];
list4 = [1,2,3,4,5,6,7,8] list4.remove(3) print(list4) # [1, 2, 4, 5, 6, 7, 8] num1 = list4.pop() print(num1) # 8 print(list4) # [1, 2, 4, 5, 6, 7] num2 = list4.pop(2) print(num2) # 4 print(list4) # [1, 2, 5, 6, 7] del list4[3] print(list4) #[1, 2, 5, 7] list4.clear() print(list4) # []
元素修改
通过元素的索引获得该元素然后修改这个值。
list5 = ["zhangsan","lisi","wangwu"] list5[0] = "change" print(list5) # ['change', 'lisi', 'wangwu']
元素查询
1.通过索引获得指定索引的值;
2.通过index(元素)函数获得元素在列表中第一次出现的索引。该函数默认从第一个索引开始寻找,index(要寻找的元素,开始的 索 引(包含),结束索引(不包含));
3 .count(元素),返回元素在列表中出现的数量;
4.len(列表名),返回元素的数量;
5. in,判断元素是否在列表中;
list5 = ["zhangsan","lisi","wangwu",1,2,3,5,1,1] print(list5[0]) # zhangsan print(list5.index("zhangsan")) # 0 print(list5.index(1,3,5)) # 3 print(list5.count(1)) # 3 print(len(list5)) #9 if 8 in list5: print("8 is in list5") else: print("8 is no in list5") # 8 is no in list5
列表排序
调用sort()实现对列表元素的排序,默认是升序排序,若想降序,使用sort(reverse=True)。
list1 = [6,3,5,4,5,8,1] list2 = [6,3,5,4,5,8,1] list1.sort() print(list1) #[1, 3, 4, 5, 5, 6, 8] list2.sort(reverse=True) print(list2) #[8, 6, 5, 5, 4, 3, 1]
sort(key,reverse)
key表示在排序的时候按什么标准排序,如果为key=len,表示在排序的时候按照每个元素的长度来排序。
list.reverse(),将列表本身反转