列表类型
优先掌握的操作
类型转换:但反能够被for循环遍历的类型都可以当做参数传给list( )转成列表
res=list("hello")
print(res)
msg=list({"k1":111,"k2":222,"k3":333})
print(msg)
内置方法
优先掌握的操作:
1、按索引存取值(正反向存取):即可取也可改
索引不存在就报错
l=[111,"hello","play basketball"]
#正向取
print(l[0])
#反向取
print(l[-1])
#可以取可以改
l[0]=222
print(l[0])
2、追加(append)在列表最末端加入值
插入(insert)在列表插入值
l=[111,"hello","play basketball"]
l.append(3333)
print(l)
l=[111,"hello","play basketball"]
l.insert(1,222)
print(l)
在下标为1的元素前插入一个值
2.1:列表追加列表(extend)
#列表追加到列表
l=[111,"hello","play basketball"]
l2=[222,333,"hehe",555]
l.extend(l2)
print(l)
3、列表删除值(pop)(remove)
pop()不指定索引默认删除最后一个
pop会返回被删除的值
l = [111, "hello", "play basketball"]
ret = l.pop(1)
print(ret)
print(l)
remove()根据元素删除
l = [111, "hello", "play basketball"]
l.remove("hello")
print(l)
4、求列表长度,元素个数
l = [111, "hello", "play basketball"]
print(len(l))
输出的结果是3
需要掌握的操作
1、count
统计列表中的元素出现个数
l = [111, "hello", "play basketball"]
print(l.count("hello"))
输出的结果是1
2、index
返回某个元素的索引,如果有某个元素有多个,返回出现的第一次的索引
l = [111, "hello", "play basketball"]
print(l.index("hello"))
输出的结果是1
3、clear
删除列表中所有的元素
l = [111, "hello", "play basketball"]
l.clear()
print(l)
4、reverse
将列表反转,不涉及排序
l = [111, "hello", "play basketball"]
l.reverse()
print(l)
5、sort
将列表内元素进行排序,只能是纯数字,或者纯字符串,无法混合
l=[5,9,3,2,-6,8]
l.sort(reverse=True) #默认为False,升序。True,降序
print(l)
列表也可以比大小,原理同字符串一样,相同位置依次相比,如果对应位置不同种类型,直接报错
元组类型 tuple
元组就是一个“不可变的列表”
定义: ( )内用逗号分割开多个任意类型的元素
t=(111,222,"hello")
print(t,type(t))
如果括号里只有一个元素,代表包含的意思。所以元组中如果只有一个元素,一定要加个逗号
t=(10)
print(t,type(t))
t=(10,[11,22])
print(id(t[0]),id(t[1]))
t[1][0]="hehe"
print(t)
print(id(t[0]),id(t[1]))
元组不可改的是元素的内存地址,是可以更改可变类型内的元素,因为对于可变类型来说,他本身的内存地址没有发生改变。
字典类型
定义:{ }内用逗号分割开多个key:value,其中value可以是任意类型,但是key必须是不可变类型,且不能重复
d={"k1":111,2:222,(1,2):333}
print(d["k1"])
print(d[(1,2)])
print(type(d))
类型转换
info=[["name","张三"],["age",18],["gender","male"]]
d={}
for item in info:
d[item[0]]=item[1]
print(d)
一行代码搞定上述:
info=[["name","张三"],["age",18],["gender","male"]]
ret=dict(info)
print(ret)
快速初始化字典:
如果有一个列表为keys,设置一个变量为None用来初始化一个字典。用到了fromkeys
keys=["name","age","gender"]
values=None
d={}.fromkeys(keys,values)
print(d)
优先掌握的操作
1、按key存取值,可存可取
对于列表来说,当索引不存在时,会报错。而对于字典来说,会创建新的值
d={"k1":111,"k2":222}
d["k3"]=333
print(d)
2、长度len
统计是字典中,不同的key,相同的key,会被新的key值覆盖
d={"k1":111,"k2":222,"k1":333,"k1":444}
print(len(d))
print(d)
3、删除
pop,通过key来删除
ret=d.pop("k1")
print(d)
print(ret)
会返回删除的key对应的值
popitem 删除字典中最后一对key和值并返回删除一个含有删除掉的key和值的元组
d={"k1":111,"k2":222,"k3":333,"k4":444,"k5":555,"k6":666}
ret=d.popitem()
print(d)
print(ret)
4、键(keys),值(values),键值对items( )
返回一个视图对象,而不是列表,也不是字典
d={"k1":111,"k2":222,"k3":333,"k4":444,"k5":555,"k6":666}
print(d.keys())
print(d.values())
print(d.items())
需要掌握的操作
clear:清空字典
update:更新字典,旧字典没有的,新字典创建到里面,旧字典拥有的但是与新字典不同的,新字典覆盖。
d={"k1":111,"k2":222,"k3":333,"k4":444,"k5":555,"k6":666}
d.update({"k1":"hehe","k7":777})
print(d)
get :
当取字典的值不存在时,平时情况下会直接报错
而当使用了get
d={"k1":111,"k2":222,"k3":333,"k4":444,"k5":555,"k6":666}
print(d.get("k7"))
会返回一个None
setdefault
如果key有则不添加,如果key没有则添加。返回的是新添加的key对应的值
d={"k1":111,"k2":222,"k3":333,"k4":444,"k5":555,"k6":666}
set=d.setdefault("k7",777)
print(d)
print(set)