li = [1,2,3] 每个元素逗号隔开 -- 常用
list("abc") # 迭代定义
列表是一个容器 -- 任意类型
列表是有序 -- 索引 切片 步长
列表是可变 -- 增删改查
append 追加
insert 插入 第一个参数 索引 第二个参数 内容
extend 迭代添加 for循环
两个列表相加 就会产生一个新的列表 列表合并
pop() 弹出,默认删除最后一个 有返回值 返回的是被删除的元素,可以指定通过索引删除元素
remove() 通过元素的名字删除 从左向右删除,有同名的删除左侧的第一个
del 表名 删除整个列表
del 表名[索引] 删除指定元素 也可以定义切片和步长删除区间内容
clear() 清空 把容器的内容全部删除
li[1] = "你好"
切片:
li[1:5] = "qwertyuio"
li[1:5] = "1"
li[1:5] = []
切片的时候可以多,可以少,可以指定空格
步长:
li[1:5:2] = "你好" 迭代出来
索引,切片,步长,for循环可直接查看
(可以加可以乘,可变的,不可变的公用)
tu = (1,2,3)或tu = (1,)都是元祖
tu = (1) 这个不是元祖 不加逗号括号中的元素是其本身
元祖是有序的 他也有索引,切片,步长(和列表一样)
但是元祖是不可变数据类型
(可以加可以乘,可变不可变的公用)
dict -- {"key":‘value‘,"a":1}
字典也是一个容器 -- 任意类型
字典是无序的(python3.6开始变得默认有序,创建顺序)
字典的键 -- 可哈希(不可变),唯一
字典的值 -- 任意
dic[‘键‘] = ‘值‘
dic.setdefault(‘键‘,‘‘值) -- 间不存在就添加,存在就不添加
pop(‘键‘)
del dic[‘键‘]
dic clear() 清空
dic[‘键‘] = ‘值‘
dic.update({‘a‘:1,‘b‘:1}) -- update(里边的级别高),会被前面的中相同的key对应的值覆盖,没有就会添加
get(‘键‘,‘指定返回的内容‘) -- 不存在返回的是None,可以设置返回值
dic[‘键‘] -- 不存在就会报错
dic.setdefault[‘键‘] -- 查询
for i in dic:
print(i) -- 循环出来的是字典的键for i in dic.keys()这两个是一样的都是键,但是dic.keys() -- 返回的是一个高仿列表 -- 没有索引
for i in dic.values():
print(i) -- 返回的是一个高仿列表 -- 没有索引 循环出来的是值
for i in dic.items():
print(i) -- 返回的是一个高仿列表,列表里存放的是元组类型,元组第一个是键,第二个元素是值
enumerate() -- 枚举 给你要迭代对象,加一个序号 默认是从0开始,可以自己指定
dic = dict(k=1,k1=2)定义方式
dict.popitiem( ):随机删除,python3.6默认删除最后一个键值对
dict.fromkeys("123",1):批量创建字典,第一个参数是可迭代对象, 第二个参数是每个键对应的值,用的同一个内存(可变的数据类型)
se = {1,2,3}
特点:天然去重
先删,再加
for i in se:
print(i)
& 交集,|并集,-差集,^反交集(对称差集),>父集(超集),<子集,frozenset() 冻结集合.
s = set("1234"):定义方式,迭代添加
True: 1,2>1等等
False: 0,‘‘,{},[],None,set(),1=2等等
1.字符串转数字的时候必须全都是十进制数
2.字符串转列表: str - list:用split转换,
3.列表转字符串: list - str:用join,可迭代的对象中不能出现数字
s = ["a","b","c","d","e"]
s0 = "".join(s)
4.列表转元祖: list - tuple:直接转换
5.字典不能转换: 字典转成字符串直接转
问题:列表 循环删除索引的时候,要倒序删除 否则会报错,或者结果不正确.
解决:倒序删除,创建一个新的列表,存放要删除的元素,最后用for新列表删除原列表的元素
循环添加列表元素的时候,会形成死循环
字典再循环的时候不能改变字典的大小
先定义一个列表 循环列表列表删除字典
encode("编码集") 编码
decode("编码集") 解码
用什么编码集编码,就用什么编码集解码
原文:https://www.cnblogs.com/ly0123/p/11906882.html