今日内容
列表(list):
======================================基本使用======================================
1、用途:多个装备,多个爱好,多门课程,多个女朋友等
2、定义方式::[]内可以有多个任意类型的值,逗号分隔 例:x = ["xxx","yyy",111]
数据转换方式:x = list("xxx")
3、常用操作+内置的方法:
优先掌握的操作:
1、按索引存取值(正向存取+反向存取):即可存也可以取
x = ["xxx","yyy",111]
print(x[0]) 正向取 print(x[-1]) 反向取
ps:可以改变列表内索引对应的值,如果索引不在列表内也不能用变量来增加
2、切片(顾头不顾尾,步长)
x[起始位置:结束位置:步长] 用法与字符串一样
3、长度
print(len(x)) 查看列表内有多少个元素
4、成员运算in和not in
print("xxx" in x) 判断指定字符串是否在列表中
5、追加(append、insert)
x.append(添加的值) 总是在列表最后一位添加
x.insert(索引,添加的值) 可以指定索引位置添加
6、删除(del、remove、pop)
del x[索引] 指定索引删除,不指定索引会将整个列表删除,索引不存在将报错,无返回值
x.remove("指定字符串") 指定字符串删除,字符串不在列表内将报错,无返回值
x.pop(索引) 指定索引删除,不指定索引会删除最后一位元素,索引不存在将报错,有返回值
7、循环(可配合for循环使用)
for l in x:
print(l) 会将列表中的每个元素取出来
需要掌握的操作:
1、拷贝(copy)
new_x = x.copy() 原理:new_x = x[:] !:浅拷贝
2、查找(index)
x.index(33) 查找括号内元素是否在列表中,不在会报错
3、统计指定元素的个数(count)
print(x.count(33)) 计算列表中有几个指定元素
4、清空整个列表(clear)
print(l.clear()) 清空整个列表,会留一个无值的空列表
5、追加写(extend)
x.extend("hello")
print(l) 在原列表中追加写一个可迭代(能被for循环)的元素
6、倒序(reverse)
x.reverse()
print(x) 将整个列表倒过来
7、排序(sort)
l = [11,-3,9,7,20,99,74]
l.sort()
print(l) 从小到大排序
l.sort(reverse=True)
print(l) 从大到小排序
======================================该类型总结====================================
存多个值
有序
可变:值变,id不变。可变==不可hash
了解:深、浅拷贝
浅拷贝:只拷贝了第一层索引对应的内存地址,第一层中不可变类型改变,新旧列表之间不受影响
如果第一层中可变类型改变,新旧列表中的值会同时改变
深拷贝:拷贝了每一层的索引对应的内存地址,每一层中不可变类型改变,新旧列表之间不受影响
每一层中可变类型改变,新旧列表中的值不会同时改变
元祖(tuple):
======================================基本使用======================================
1、用途:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读
2、定义方式:与列表类型比,只不过[]换成()
age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))
3、常用操作+内置的方法:
优先掌握的操作:
1、按索引取值(正向取+反向取):只能取
print(x[0]) 可以按照索引取值
2、切片(顾头不顾尾,步长):
print(x[起始索引:结束索引:步长]
3、长度
print(len(x)) 计算元组内有多少个元素
4、成员运算in和not in
print("xxx" in x) 判断指定字符串是否在元祖中
5、循环(可配合for循环使用)
需要掌握的操作:
1、按索引查找(index)
print(x.index(11)) 查找指定元素在元祖中的索引,不存在则报错
2、统计指定元素的个数(count)
print(x.count(22)) 查找指定元素在元祖中的个数
========================================================================
x = (11,22,[33,44])
x[0] = 22 元祖内不可变元素值不能改变
x[2][0] = 11
print(x) 元祖中可变元素,只能改变
原理:元祖内都是索引和对应的内存地址,只要索引和内存地址不改变,值就可以改变
======================================该类型总结====================================
存一个值
有序
不可变:值变,id就变。不可变==可hash
字典(dict):
======================================基本使用======================================
1、用途:存多个值,key-value存取,取值速度快
2、定义方式:key必须是不可变类型,value可以是任意类型
info={'name':'egon','age':18,'sex':'male'} 本质info=dict({....})
或
info=dict(name='egon',age=18,sex='male')
或
info=dict([['name','egon'],('age',18)])
或
{}.fromkeys(('name','age','sex'),None)
3、常用操作+内置的方法:
优先掌握的操作:
1、按key存取值:可存可取:
x = {"k1":111,"k2":222}
print(x["k1"]) 按key来取值
x["k3] = 333
print(x) 如果key值不在字典内则增加一组,如果key值在字典中则改变字典中key对应的值
2、长度len:
len(x) 计算字典中有多少组key:value
3、成员运算in和not in
print("k3" in x) 判断是否在字典内的key值中
4、删除
del x["k1"] 指定key值删除所相对应的值
res = x.pop("k1") 指定key值删除所相对应的值,有返回值
res = x.popitem() 随机删除字典内一组key,value值,有返回值
5、键keys(),值values(),键值对items()
x = {"k1":111,"k2":222}
print(x.keys()) 显示列表中所有key值
print(x.values()) 显示列表中所有values值
print(x.items()) 显示列表中所有key:values值
6、循环
可以被for循环使用
======================================该类型总结====================================
存多个值
无序
key必须是不可变类型,value可以是任意类型