for遍历循环和while无限循环中,使用continue不会影响else分支的执行
序列的索引和切片操作都是通过 []
索引:序列名[index]
,index是序号
切片:序列名[start:end:strp]
,注意是冒号:
,与range()内置函数的逗号区分,都是包前不包后
当strp为负数时,start必须大于end,从大往小的方向,否则零输出
包前不包后的含义:即不管start:end
是从小到大还是从大到小的方向,都是后面的不包,只包范围内的前一个
序列的通用操作:
s.index(x) 序列s中第一次出现元素x的值
s.count(x) x在序列s中出现的总次数
del 列表名
删除列表后,不能再使用,print会报错
删除元组后,不能再使用,print会报错
字典删除了之后就不能使用了 执行此句会报错
列表生成式可以直接使用
元组生成式产生一个生成式对象,需要tuple()函数转换一下
元组 | 列表 |
---|---|
不可变序列 | 可变序列 |
无法实现添加、删除和修改元素等操作 | append() insert() remove() pop() 等方法实现添加和删除列表元素 |
支持切片访问元素,不支持修改操作 | 支持切片访问元素和修改列表中的操作 |
访问和处理速度快 | 访问和处理速度慢 |
可以作为字典的键 | 不能作为字典的键 |
range() 返回的是range类
print(range(1,5,2))
print(type(range(1,5,2)))
'''
range(1, 5, 2)
'''
enumerate用法
lst=list(range(1,21,2))
print(lst)
for i,j in enumerate(lst,start=3):
print(i,'-->',j)
列表排序:
lst.sort(key=None,reverse=False) 在原列表的基础上进行操作
sorted(lst,key=None,reverse=False) 原列表不变,产生一个新列表,不会改变原来的列表
一个变量的值赋给另一个变量,这两个变量的内存地址相同
d={'a':10,'b':20,'c':30,'d':40}
d2=d
print(id(d),id(d2))
d['b']=100
print(d['b']+d2['b'])
a=100
b=a
print(id(a),id(b))