python学习笔记-列表、元组字典 列表 元祖 字典

1、定义和写法

用中括号括起来

用,分割每个元素

列表中的元素可以是数字,字符串,列表,布尔值,所有的都能放进去

“集合”,内部可放置任何东西

2、用法

#索引取值
li=[1,12,9,"age",["steven","a",["b","c"],"D"]]
print(li[3])
#切片,切片结果也是列表
print(li[2:-1])
#for 循环
#while循环
for item in li:
    # if type(item)==list:
    #     for i in item:
    #         print(i)
    #     continue
    print(item)
#列表元素可以被修改
#修改
li[1]=120
#删除,第一种方式
del li[1]
#通过切片的方式进行修改
li[1:3]=[120,90]
del li[2:6] #通过切片删除
#in 操作
v=12 in li #结果为True
# 字符串转列表
s='agcdefgh'
newLi=list(s) #转化成列表,调用for循环,对每个字符进行分隔
#结果为:['a', 'g', 'c', 'd', 'e', 'f', 'g', 'h']
# 列表转字符串
li=[11,22,33,"123","abcd"]
t=str(li)#只是把整个列表加引号变成字符串
#列表转化成字符串,要自己写for循环。既有数字又有字符串时
#直接使用join的方法,列表全部只有字符串时可用
str1="".join(li[3:5])

3、其他方法

li.append("NB")#追加,列表可以修改,在原来值最后追加
li.clear()#清空列表
li.copy()#拷贝
li.count(12)#计算元素出现的次数
li.extend(iterable)#扩展原列表,传入可迭代对象,参数
#li.extend([9898,"其他"])
li.index(12)#根据值获取当前值索引位置,左边优先
#index(self,value,start,stop)
li.insert(0,99)#在指定索引位置插入元素
li.pop(2)#删除某个值,并获取删除的值,默认删除最后一个
li.remove(12)#删除列表中的指定值,左边优先
li.reverse()#将当前列表进行反转
li.sort()#排序,从小到大
li.sort(reverse=True)#从大到小

元祖

1、定义

一般写元祖的时候,推荐再最后加入,

元素不可被修改,不能被增加或删除

索引,切片,for循环,可迭代对象

2、用法

s="dkajdjfka"
li=[]
tu=()
#字符串,列表转化成元祖
r=tuple(s)
v=tuple(li)
#元祖转化成列表
v=list(tu)
# 元组的一级元素不可修改/删除/增加,当里面嵌套的列表时,列表可以被修改
tu=(111,"steven",(11,22),[(33,44)],True,33)
tu[3][0]=555
#其他方法
tu.count(33) #获取指定元素在元祖中出现的次数
tu.index(33) #获取某一个值在元组内的索引

字典

1、定义

# 创建
info={"k1":"v1","k2":"v2"}

# 字典的value可以是任何值
info={1:"asdf","k1":"asdf",(22,33):123}
key可以是数字,字符串,元祖,布尔。列表字典不能作为key
字典是无序的

补充:key相同时,字典的一个key会被覆盖
True为key时,应默认为1,会覆盖key为1的一个元素

2、用法

#for循环
info={1:"asdf","k1":"asdf",(22,33):123}
for item in info:              #默认根据key循环
    print(item)

for item in info.values():     #循环value
# for item in info.keys():     #循环key
    print(item)

for k,v in info.items():       #循环健值对
    print(k,v)


#其他方法
info.clear() #清除
info.copy()  #拷贝
#fromkeys()静态方法,根据序列,创建字典并指定统一的值
dicNew=dict.fromkeys(["k1",123,"999"],123)#{'k1': 123, 123: 123, '999': 123}
#get()
v=dicNew["k1"]
v=dicNew.get("k4",1111)#根据key获取值,key不存在时可以指定默认值,默认是None
#pop()
v=dicNew.pop("k1")
v=dicNew.pop("k4",90) #删除指定的值,并获取删除的值,加参数时删除的值不存在时,获取指定的值
#popitem()
v=dicNew.popitem()#随机删除,并获取删除的键值对(元组)
k,v=dicNew.popitem()
#setdefault()设置值
v=dicNew.setdefault("k11","223")
#已存在,不设置,获取当前key对应的值;不存在,设置,获取当前key对应的值 223
#update()更新
dicNew.update({"k1":"1111","k3":123})
dicNew.update(k1=333,k3=345,k5="asdf")