# -*- coding: utf-8 -*-#创建空的list列表list1 = []#创建一个元素listOne = ['hello']listOne2 = list(['hello'])print(listOne) #['hello']print(listOne2) #['hello']#列表的创建(列表中可以插入类型不同的元素:int,float,str,list,tuple,dict,bool)list2 = [1, {'pi': 3.14}, (3, 'b'), 'hello', 3.14, 3e3, True]print(id(list2)) #4299951064print(list2) #[1, {'pi': 3.14}, (3, 'b'), 'hello', 3.14, 3000.0, True]list3 = list2 #相当于给list2贴了一个list3的标签print(id(list3)) #4299951064 和list2一样list4 = list2[:] #以切片的形式会创建一块新的内存空间print(id(list4)) #4300021912 和list2不一样strTemp = 'abcdefg'list9 = strTemp.split()print(list9) #['abcdefg']list10 = list(strTemp) #list是工厂模式print(list10) #['a', 'b', 'c', 'd', 'e', 'f', 'g']#修改列表元素list2[2] = 'a'print(list2) #[1, {'pi': 3.14}, 'a', 'hello', 3.14, 3000.0, True]print(list3) #[1, {'pi': 3.14}, 'a', 'hello', 3.14, 3000.0, True] 更改list2的值,list3的也改变print(list4) #[1, {'pi': 3.14}, (3, 'b'), 'hello', 3.14, 3000.0, True]#列表增加数据方式1,每次只能添加1个元素list1.append('world')list1.append(23l)list1.append(23)list1.append(3.15)list1.append(23)list1.append(['a', True])print(list1) #['world', 23L, 23, 3.15, 23, ['a', True]]#方式2,一次可以加多个元素,但参数只有一个,所有参数可以为元组,字典,列表list1.extend(list2)list1.extend((2, 'a'))list1.extend({'c', 9})print(list1) #['world', 23L, 23, 3.15, 23, ['a', True], 1, 2, 'a', 'hello', 3.14, 3000.0, 2, 'a', 9, 'c']#方式3list1.insert(1, 'new') #['world', 'new', 23L, 23, 3.15, 23, ['a', True], 1, {'pi': 3.14}, 'a', 'hello', 3.14, 3000.0, True, 2, 'a', 9, 'c']print(list1) ##查找某一元素的数量print(list1.count(23)) #3#查找某元素的索引print(list1.index('a')) #9print(list1.index('a', 4)) #9 , 索引区间[4, 18).不包含18print(list1.index('a', 4, 14)) #9, 索引区间[4, 14).不包含14#print(list1.index('a', 1, 4)) #区间查找, 找不到报错,ValueError: 'a' is not in list#删除列表元素和清空list5 = ['1', 'a', 3.5, 4, 5]list5.remove('a')print(list5) #['1', 3.5, 4, 5]temp = list5.pop(2)print(temp) #4print(list5) #['1', 3.5, 5]del(list5[0])print(list5) #[3.5, 5]#清空,不要用list5 = [],这是新创建,如果还有变量指向原来的,原来的那块是还存在的del(list5)#print(str(list5)) #报错, NameError: name 'list5' is not defined#列表比较print(list4 < list3) #False#判断元素在不在列表中list6 = [1, 'a', 3.13, ['hello', 2], 4e2]print('a' in list6) #Trueprint('hello' in list6) #Falseprint('hello' in list6[3]) #Trueprint('hello' not in list6) #Trueprint('hello' not in list6[3]) #False#列表元素反序list7 = [1, 'a', 3, 4.5, 5]list7.reverse()print(list7) #[5, 4.5, 3, 'a', 1]#列表排序(从小到大排序, 包含特殊元素没关系, 会拍在后面, 具体位置可能随机的)list8 = [5, 4.5, ('a', 9), {'pi': 3.14}, 'a', 3e4]list8.sort()print(list8) #[4.5, 5, 30000.0, {'pi': 3.14}, 'a', ('a', 9)]#列表长度print(len(list8)) #6#乘号*作为重复器list11 = [1, 'a', 3.3] * 3print(list11) #[1, 'a', 3.3, 1, 'a', 3.3, 1, 'a', 3.3]list12 = [1, 2, 3.4, 4, 5, 6]print(max(list12)) #6print(min(list12)) #1print(list12[2]) #3.4print(list12[-2]) #5 加个负号就相当于从后往前查找 list12[-n] == list12[len(li) - n]print(list12[-0]) #1 相当于list12[0],#所有元素单独做处理print([i*2 for i in list12]) #[2, 4, 6.8, 8, 10, 12]