一、list 类, 列表
li = [1, 12, 9, "age", ["大白", "小黑"], "alex"]
1. 中括号括起来
2. 逗号分割每个元素
3. 列表中的元素可以是数字、字符串、列表、布尔值等
4. 索引取值
5. 切片取值---->得到的还是列表
6. for循环
7. while 循环
8. 支持 in 操作
列表在内存中是以链表形式存储,可以被修改
二、列表灰魔法
1.修改
li = [1, 12, 9, "alex", ["大白", "小黑"]] li[1] = 120 print(li)
li = [1, 12, 9, "alex", ["大白", "小黑"]] li[1: 3] = [120, 90] print(li)
2.删除
li = [1, 12, 9, "alex", ["大白", "小黑"]] del li[1] print(li)
li = [1, 12, 9, "alex", ["大白", "小黑"]] del li[0:3 ] print(li)
3.操作
li = [1, 12, 9, "alex", ["大白", [7, 19]]] v = li[4][1][0] print(v
字符串转为列表
s = "dabai" new_li = list(s) print(new_li)
for i in 123: print(i)
数字(int)不能进行for循环,不能用list 变为列表,因为字符串转换为列表,内部是进行了 for 循环。
列表转换为字符串
1.既有数字又有字符串时,自己写for循环
li = [11,22,33,"123", "alex"] s = "" for i in li: s = s + str(i) print(s)
2. 如果列表里只有字符串时,用字符串的join方法
li = ["123", "alex"] v = "".join(li) print(v)
三、列表的常用魔法
1.输入参数,在原来值最后追加, None在python里表示空,什么都没有。因为 list 可以直接修改,所以不需要用 v 重新接受,直接用 li.appebd(5) 即可
li = [11, 22, 33, 44]
v = li.append(5)
print(li)
print(v)
li 对象调用了append 方法
li = [11, 22, 33, 44] li.append([1234,2323]) print(li)
2.清空列表
li = [11, 22, 33, 44] li.clear() print(li)
3.拷贝, 浅拷贝
li = [11, 22, 33, 44] v = li.copy() print(v)
4. 计算元素出现的次数
li = [11, 22, 33, 22, 44] v = li.count(22) print(v)
5.扩展原列表,参数为可迭代对象(iterable为可迭代对象)
li = [11, 22, 33, 22, 44] li.extend(["大白", "521"]) print(li)
extend 相当于内部有个for 循环,然后再 li.append()
li = [11, 22, 33, 22, 44] li.extend("大白") print(li)
6.根据值获取当前值索引位置,左边优先,可以指定起始位置
li = [11, 22, 33, 22, 44] v= li.index(22) print(v)
7. 在指定索引位置插入
li = [11, 22, 33, 22, 44] li.insert(0, 99) print(li)
8.默认删除列表最后一个,并获取被删除的值
li = [11, 22, 33, 22, 44] v = li.pop() print(li) print(v)
指定索引删除
li = [11, 22, 33, 22, 44] v = li.pop(1) print(li) print(v)
9. 删除列表中的指定值,左边优先
li = [11, 22, 33, 22, 44] li.remove(22) print(li)
10. 将当前列表进行翻转
li = [11, 22, 33, 22, 44] li.reverse() print(li)
11.列表的排序,默认是从小到大排
li = [11, 22, 33, 22, 44] li.sort() print(li)
也可以从大到小排
li = [11, 22, 33, 22, 44] li.sort(reverse = True) print(li)