python的列表,元祖及字典
Posted arthur7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的列表,元祖及字典相关的知识,希望对你有一定的参考价值。
数据类型划分
列表
增:
增加对列表操作,没有返回值,直接无法打印
insert
#插入到指定位置中 li = [1,‘a‘,‘b‘,2,3,‘a‘] li.insert(0,55) #按照索引去增加,在指定位置增加 print(li)
append
#一次只能添加一个元素 #添加到列表的最后 li.append(‘aaa‘) #增加到最后 li.append([1,2,3]) #增加到最后 print(li)
extend
li = [‘authur‘ , ‘yxd‘] li.extend([‘q,a,w‘]) #迭代的去增,列表以每个最小单位添加, print(li) li.extend(‘qwe‘) print(li) #[‘authur‘, ‘qwe‘, ‘q,a,w‘] #[‘authur‘, ‘qwe‘, ‘q,a,w‘, ‘q‘, ‘w‘, ‘e‘] 不能迭代int,可以将数字放在列表中添加 li = [‘authur‘,‘qwe‘] li.extend(123) #这样会报错,‘int‘ object is not iterable 可以在列表中迭代 li = [‘authur‘,‘qwe‘] li.extend([123,‘asd‘]) print(li) [‘authur‘, ‘qwe‘, 123, ‘asd‘]
删:
pop
#按照索引去删除,默认不写是删除最后一个。有返回值,返回值为删除的那个元素,也是列表操作中唯一有返回值的。 li = [‘arthur‘,21] print(li.pop(1)) 21
del
#按照位置去删除,也可切片删除没有返回值。如果没有切片,将整个列表删除 li = [‘arthur‘,‘qwe‘,21] del li[0:2] print(li) [21] li = [‘arthur‘,‘qwe‘,21] del li #直接删除列表 print(li) #print会报错,因为直接从内存删除了列表
remove
#按照元素去删除, li = [‘arthur‘,‘qwe‘,21] li.remove(‘arthur‘) print(li) [‘qwe‘, 21]
clear
#清空列表 li.clear() #此时列表为空列表
改
将指定的一个值或是切片的范围值替换为指定的元素
指定位置更改
li = [1,‘a‘,‘b‘,2,3,‘a‘] li[1] = ‘Arthur‘ print(li) [1, ‘Arthur‘, ‘b‘, 2, 3, ‘a‘] #会将指定的位置元素替换为输入的元素,可以是列表等等
切片范围更改
切片是将所选范围替换掉,更改任意多个新的元素,以最小单位去迭代,字符串是以每个字符,列表是以每一位。和extend效果一样,也不可以直接迭代int,可以借助列表
li = [1,‘a‘,‘b‘,2,3,‘a‘] li[0:2] = ‘yxd‘ print(li) [‘y‘, ‘x‘, ‘d‘, ‘b‘, 2, 3, ‘a‘] #将选择的切片范围去掉,以迭代的方式将指定的内容写入列表中
切片添加列表
li = [1,‘a‘,‘b‘,2,3,‘a‘] li[0:2] = [‘qwe‘,123,‘Arthur‘,[‘qwe‘,123,‘Arthur‘]] print(li) [‘qwe‘, 123, ‘Arthur‘, [‘qwe‘, 123, ‘Arthur‘], ‘b‘, 2, 3, ‘a‘] #可以发现,列表是以最小单位迭代的,所以替换字符串的时候可以使用列表来实现,而列表中的列表依旧是列表,没有被拆分。
查:
切片去查,或者循环去查。
可以遍历列表查
li = [‘authur‘,‘yxd‘,‘21‘] for i in li: print(i)
#查看前两个元素 print(li[0:2])
列表的嵌套:
li = [‘arthur‘ , ‘zxc‘ , ‘我去‘, [‘qwe‘,‘asd‘,92],23 ] print(li[1][1]) x
li[0]=li[0].capitalize() print(li)
li[2] = ‘我不去‘ li[li.index(‘我去‘)]= li[li.index(‘我去‘)].replace(‘去‘,‘不去‘) print(li)
li[3][0] = li[3][0].upper() print(li)
元组:
li = (‘authur‘ , ‘yxd‘ , ‘我去‘ , [‘qwe‘,‘asd‘,92],23 ) print(li[2]) print(li[1:3])
#遍历元组 for i in li: print(i) #修改元素中的列表 li[3][1] = li[3][1].upper() print(li) (‘authur‘, ‘yxd‘, ‘我去‘, [‘qwe‘, ‘ASD‘, 92], 23) #追加元素到元祖中的列表 li[3].append(‘Authur‘) print(li)
字典
dic = { ‘name‘:[‘arthur‘,‘qwe‘], ‘py9‘:[{‘num‘:71,‘avg_age‘:18,}, {‘num‘: 71, ‘avg_age‘: 18, }, {‘num‘: 71, ‘avg_age‘: 18, }, ], True:1, (1,2,3):‘wuyiyi‘, 2:‘ewq‘, } print(dic)
增:
第一种方法:直接赋值
dic1 = {‘age‘: 18, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘,}
dic1[‘high‘] = 185 #如果元组中没有键,则添加
dic1[‘age‘] = 16 #如果元组中有这个键,则值覆盖
#{‘age‘: 16, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘, ‘high‘: 185}
第二种方法:setdefault()
格式:setdefault(self, key, value)
特点:在添加的时候,如果字典中已经有键,则不做任何改变,如果字典中没有键值对,则添加。默认添加时,只写键不写值,值为none
dic1 = {‘age‘: 18, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘,} dic1.setdefault(‘top‘,‘python‘) dic1.setdefault(‘age‘,81) print(dic1) {‘age‘: 18, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘, ‘top‘: ‘python‘}
删:
第一种方法:
格式:pop(‘key‘)
特点:删除时以key删除,有返回值,返回key对应的value
dic1 = {‘age‘: 18, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘,} print(dic1.pop(‘age‘)) 18
#用法
print(dic1.pop(‘python‘,‘没有此键‘)) #如果没有这个键,删除时可设置返回值,来判断字典中是否存在这个键,如果有键,删除时返回对应的值
没有此键
第二种方法:
格式:popitem()
特点:删除时随机删除,一般删除字典中的最后一对键值对,返回值为删除的这对键值对
dic1 = {‘age‘: 18, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘,} print(dic1.popitem()) (‘sex‘, ‘male‘) #以元祖的方式返回键值对
第三种方法:
格式:del 字典[‘key’]
特点:删除没有返回值,如果所删的key没在字典中则报错,如果没有指定删除的key,则删除整个字典
dic1 = {‘age‘: 18, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘,} del dic1[‘age‘] print(dic1) {‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘}
del dic1 #删除整个字典
第四种方法:
格式:字典.clear()
特点:清空字典中的内容,和del不同的是,del是在内存中删除,clear保留字典,只不过内容为空
改:
第一种方法:
直接赋值,和增的时候相同
dic1 = {‘age‘: 18, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘,} dic1[‘high‘] = 185 #如果元组中没有键,则添加 dic1[‘age‘] = 16 #如果元组中有这个键,则值覆盖 #{‘age‘: 16, ‘name‘: ‘Arthur‘, ‘sex‘: ‘male‘, ‘high‘: 185}
第二种方法:
格式:字典.update(字典2)
特点:设置两个字典,对其中一个字典进行更新,会将两个字典的键值比对,如果被更新的字典有这个key,则覆盖,没有就添加
dic = {"name":"arthur","age":18,"sex":"male"} dic2 = {"name":"python","weight":75} dic2.update(dic) #以dic的内容更新dic2 print(dic2) {‘name‘: ‘arthur‘, ‘weight‘: 75, ‘age‘: 18, ‘sex‘: ‘male‘}
查:
第一种方法:
直接打印,有则打印,没有报错
dic = {"name":"arthur","age":18,"sex":"male"} print(dic[‘name‘]) arthur
第二种方法:
get()
有key时不管后边如何设置,都会返回key对应的value,没有时,返回后边设置的值,没有设置返回none
#有这个键值时 dic = {"name":"arthur","age":18,"sex":"male"} print(dic.get(‘name‘,‘没有这个键值‘)) arthur #没有这个键值时 print(dic.get(‘python‘,‘没有这个键值‘)) 没有这个键值
第三种方法:
格式:字典.keys() 以列表的形式打印字典的key
字典.values() 以列表的形式打印字典的values
字典.items() 以列表的方式打印,以元组存放字典的键值对
dic1 = {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘,} print(dic1.keys(),type(dic1.keys())) print(dic1.values()) print(dic1.items()) 运行结果 dict_keys([‘age‘, ‘name‘, ‘sex‘]) <class ‘dict_keys‘> #特殊类型,字典key,可以当做列表处理 dict_values([18, ‘jin‘, ‘male‘]) dict_items([(‘age‘, 18), (‘name‘, ‘jin‘), (‘sex‘, ‘male‘)]) #最小单位是元组
循环打印字典的内容:
打印字典的键:
for i in dic1: print(i) for i in dic1.keys(): print(i)
打印字典的值:
for i in dic1.values(): print(i)
打印字典的键值对:
for k,v in dic1.items(): #使用k和v分别取值 print(k,v)
字典的嵌套
dic = { ‘name‘:[‘Arthur‘,‘python‘,‘boa‘], ‘py9‘:{ ‘time‘:‘2018‘, ‘learn_time‘:10, ‘addr‘:‘CBD‘, }, ‘age‘:21 }
# 添加一个键值为age: 56
dic[‘age‘] = 56
print(dic)
#{‘name‘: [‘Arthur‘, ‘python‘, ‘boa‘], ‘py9‘: {‘time‘: ‘2018‘, ‘learn_time‘: 10, ‘addr‘: ‘CBD‘}, ‘age‘: 56}
#显示name的值,以列表的形式
print(dic[‘name‘])
#[‘Arthur‘, ‘python‘, ‘boa‘]
#在name对应的值,也就是列表中,添加ritian
dic[‘name‘].append(‘ritian‘)
print(dic[‘name‘])
#[‘Arthur‘, ‘python‘, ‘boa‘, ‘ritian‘]
#将python转换为大写的形式
dic[‘name‘][1] = dic[‘name‘][1].upper()
print(dic[‘name‘])
#[‘Arthur‘, ‘PYTHON‘, ‘boa‘]
#在py9中添加zabbix: 44 这个键值对
dic[‘py9‘][‘zabbix‘] = 44
print(dic)
{‘name‘: [‘Arthur‘, ‘python‘, ‘boa‘], ‘py9‘: {‘time‘: ‘2018‘, ‘learn_time‘: 10, ‘addr‘: ‘CBD‘, ‘zabbix‘: 44}, ‘age‘: 21}
以上是关于python的列表,元祖及字典的主要内容,如果未能解决你的问题,请参考以下文章
what's the python之基本运算符及字符串列表元祖集合字典的内置方法