1 # 1、作用:按位置存放多个值 2 # 2、定义 3 # 定义:在[]内,用逗号分隔开多个任意数据类型的值 4 l1 = [1,'a',[1,2]] # 本质:l1 = list([1,'a',[1,2]]) 5 # l=[1,1.2,'a'] # l=list([1,1.2,'a']) 6 # print(type(l)) 7 8 # 3、类型转换: 但凡能够被for循环遍历的类型都可以当做参数传给list()转成列表 9 # res=list('hello') 10 # print(res) 11 # 12 # res=list({'k1':111,'k2':222,'k3':3333}) 13 # print(res) 14 >>> list('wdad') # 结果:['w', 'd', 'a', 'd'] 15 >>> list([1,2,3]) # 结果:[1, 2, 3] 16 >>> list({"name":"jason","age":18}) #结果:['name', 'age'] 17 >>> list((1,2,3)) # 结果:[1, 2, 3] 18 >>> list({1,2,3,4}) # 结果:[1, 2, 3, 4] 19 20 # 4、内置方法 21 # 优先掌握的操作: 22 # 1、按索引存取值(正向存取+反向存取):即可以取也可以改 23 # l=[111,'egon','hello'] 24 # 正向取 25 # print(l[0]) 26 # 反向取 27 # print(l[-1]) 28 # 可以取也可以改:索引存在则修改对应的值 29 # l[0]=222 30 # print(l) 31 32 # 无论是取值操作还是赋值操作:索引不存在则报错 33 # l[3]=333 34 35 36 # 2、切片(顾头不顾尾,步长) 37 l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]] 38 # print(l[0:3]) 39 # print(l[0:5:2]) # 0 2 4 40 41 # print(l[0:len(l)]) 42 # print(l[:]) 43 # new_l=l[:] # 切片等同于拷贝行为,而且相当于浅copy 44 # print(id(l)) 45 # print(id(new_l)) 46 47 # l[-1][0]=1111111 48 # print(l) 49 # print(new_l) 50 51 # print(l[::-1]) 52 53 # msg1='hello:egon:<>:18[]==123' 54 # msg2=msg1[:] 55 # print(msg1,id(msg1)) 56 # print(msg2,id(msg2)) 57 # 3、长度 58 # print(len([1, 2, 3])) 59 # 4、成员运算in和not in 60 # print('aaa' in ['aaa', 1, 2]) 61 # print(1 in ['aaa', 1, 2]) 62 # 5、往列表中添加值 63 # 5.1 追加 64 # l=[111,'egon','hello'] 65 # l.append(3333) 66 # l.append(4444) 67 # print(l) 68 69 # 5.2、插入值 70 # l=[111,'egon','hello'] 71 # l.insert(0,'alex') 72 # print(l) 73 74 # 5.3、extend添加值 75 # new_l=[1,2,3] 76 # l=[111,'egon','hello'] 77 # l.append(new_l) 78 # print(l) 79 80 # 代码实现 81 # for item in new_l: 82 # l.append(item) 83 # print(l) 84 85 # extend实现了上述代码 86 # l.extend(new_l) 87 # l.extend('abc') 88 # print(l) 89 90 91 # 7、删除 92 # 方式一:通用的删除方法,只是单纯的删除、没有返回值 93 # l = [111, 'egon', 'hello'] 94 # del l[1] 95 # x =del l[1] # 抛出异常,不支持赋值语法 96 # print(l) 97 98 # 方式二:l.pop()根据索引删除,会返回删除的值 99 # l = [111, 'egon', 'hello'] 100 # l.pop() # 不指定索引默认删除最后一个 101 # l.pop() 102 # print(l) 103 104 # res=l.pop(1) 105 # print(l) 106 107 # print(res) 108 109 # 方式三:l.remove()根据元素删除,返回None 110 # l = [111, 'egon', [1,2,3],'hello'] 111 # l.remove([1,2,3]) 112 # print(l) 113 # res=l.remove('egon') 114 # print(res) # None 115 116 117 # 8、循环 118 # l=[1,'aaa','bbb'] 119 # for x in l: 120 # l.pop(1) 121 # print(x) 122 123 # 需要掌握操作 124 l = [1, 'aaa', 'bbb','aaa','aaa'] 125 # 1、l.count() 126 # print(l.count('aaa')) 127 128 # 2、l.index() 129 # print(l.index('aaa')) 130 # print(l.index('aaaaaaaaa')) # 找不到报错 131 132 # 3、l.clear() 133 # l.clear() 134 # print(l) 135 136 # 4、l.reverse():不是排序,就是将列表倒过来 137 # l = [1, 'egon','alex','lxx'] 138 # l.reverse() 139 # print(l) 140 141 # 5、l.sort(): 列表内元素必须是同种类型才可以排序 142 # l=[11,-3,9,2,3.1] 143 # l.sort() # 默认从小到大排,称之为升序 144 # l.sort(reverse=True) # 从大到小排,设置为降序 145 # print(l) 146 147 # l=[11,'a',12] 148 # l.sort() 149 150 # l=['c','e','a'] 151 # l.sort() 152 # print(l) 153 154 # 了解:字符串可以比大小,按照对应的位置的字符依次pk 155 # 字符串的大小是按照ASCI码表的先后顺序加以区别,表中排在后面的字符大于前面的 156 # print('a'>'b') 157 # print('abz'>'abcdefg') 158 159 # 了解:列表也可以比大小,原理同字符串一样,但是对应位置的元素必须是同种类型 160 # l1=[1,'abc','zaa'] 161 # l2=[1,'abc','zb'] 162 # 163 # print(l1 < l2) 164 165 166 # 补充 167 # 1、队列:FIFO,先进先出 168 # l=[] 169 # # 入队操作 170 # l.append('first') 171 # l.append('second') 172 # l.append('third') 173 # 174 # print(l) 175 # # 出队操作 176 # print(l.pop(0)) 177 # print(l.pop(0)) 178 # print(l.pop(0)) 179 180 # 2、堆栈:LIFO,后进先出 181 l=[] 182 # 入栈操作 183 l.append('first') 184 l.append('second') 185 l.append('third') 186 187 print(l) 188 # 出队操作 189 print(l.pop()) 190 print(l.pop()) 191 print(l.pop())