Python Magic——列表、元组、字典


前言

列表、元组、字典与集合这四队伍在Python中可谓厉害的不得了,每个队伍都有各自的特点,拥有各种各样的士兵,为数据的临时存放起到重要作用。


一、列表

1. 特点

① 有序,元素可修改。
② 元素可为所有类型。
③ 可迭代对象(可以实现for循环)。

2. 增删改查

① 索引取值
li = [1,2,'age','n','name',['李','123'],'n','王',True]
a,a1 = li[1],li[4][1][1]
print(a,a1)
② 切片取值
li = [1,2,'age','n','name',['李','123'],'n','王',True]
b = li[1:5]
print(b)
③ for循环取值
li = [1,2,'age','n','name',['李','123'],'n','王',True]
for i in li:
    print(i)
④ while循环取值
li = [1,2,'age','n','name',['李','123'],'n','王',True]
n=0
while n<len(li):
    print(li[n])
    n = n+1
⑤ 列表修改
li = [1,2,'age','n','name',['李','123'],'n','王',True]
li[1]=500
print(li)
⑥ 列表删除
li = [1,2,'age','n','name',['李','123'],'n','王',True]
del li[5]
del li[1:3]
print(li)
⑦ in操作
li = [1,2,'age','n','name',['李','123'],'n','王',True]
c = '王' in li
print(c) #True or False
⑧ 转换

字符串转列表

d = 'Iloveyou520'
li_1 = list(d)
print(li_1)

列表转字符串

li = [1,2,'age','n','name',['李','123'],'n','王',True]
s = ''
for i in li:
    s = s+str(i)
print(s)
#列表中不含数字可直接用join()方法
v = ''.join(li)
print(v)

3. 列表专属魔法

① append()—在原来值最后追加新元素
li = [1,2,'age','n','name',['李','123'],'n','王',True]
li.append('W')
print(li)
② copy()—拷贝,浅拷贝
li = [1,2,'age','n','name',['李','123'],'n','王',True]
pi = li.copy()
print(pi)
③ clear()—清空列表
li = [1,2,'age','n','name',['李','123'],'n','王',True]
pi.clear()
print(pi)
④ count()—计算某个元素出现个数
li = [1,2,'age','n','name',['李','123'],'n','王',True]
a = li.count('n')
print(a)
⑤ extend()—扩展列表(拆分一次后插入)
li = [1,2,'age','n','name',['李','123'],'n','王',True]
li.extend(['W',12])
print(li)
⑥ index()—查找元素第一次出现的索引位置,左优先
li = [1,2,'age','n','name',['李','123'],'n','王',True]
b = li.index('n')
c = li.index('n',5,8)   #57之间查找
print(b,c)
⑦ insert()—在指定索引位置插入
li = [1,2,'age','n','name',['李','123'],'n','王',True]
li.insert(1,'love')
print(li)
⑧ pop()—删除元素,默认尾部,也可指定,可获取删除值
li = [1,2,'age','n','name',['李','123'],'n','王',True]
d = li.pop()  #默认删除最后一个元素
e = li.pop(2) #指定位置删除
print(d,e,li)
⑨ remove()—删除列表中的指定值,左优先
li = [1,2,'age','n','name',['李','123'],'n','王',True]
li.remove('name')
print(li)
⑩ reverse()—将当前列表元素进行反转
li = [1,2,'age','n','name',['李','123'],'n','王',True]
li.reverse()
print(li)
⑪ sort()—将列表元素排序
lis = [5,8,1,55,3,5,2]
lis.sort()    #从小到大排序
print(lis)
lis.sort(reverse=True)   #从大到小排序
print(lis)

二、元组

1. 特点

① 有序,元素不可修改。
② 元素可为所有类型。
③ 可迭代对象(可以实现for循环)。
④ 一级元素不能修改。
⑤ 可在最后加一逗号,表特殊。

2. 增删改查

① 索引、切片、for循环方法均与列表一样。
② 转换

字符串转元组

s = 'Iloveyou'
tu_1 = tuple(s)

元组转字符串

tu_1 = ('I','l','o','v','e','y','o','u')
t = ''
for i in tu_1:
    t = t+str(i)
print(t)

列表转元组

li = ['I','love','you']
tu_2 = tuple(li)
print(tu_2)

元组转列表

tu_2 = ('I','love','you')
li_1 = list(tu_2)
print(li_1)

3. 元组专属魔法

count(),index()—与列表用法一样

二、字典

1. 特点

① 无序,可修改。
② key值不可为列表与字典类型,value值可为所有类型。
③ 可迭代对象(可以实现for循环)。

2. 增删改查

① 取值
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
a,a1 = info['k1'],info['k3'][3]['k12'][0]
print(a,a1)
② 删除
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
del info['k1']
del info['k3'][3]['k12']
print(info)
③ for循环获取key,value,key:value值
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
for i in info:   #默认为key值,或keys()
    print(i)
for i in info.values():
    print(i)
for i,y in info.items():
    print(i,y)

3.字典专属魔法

① copy()—拷贝,浅拷贝
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
info1 = info.copy()
print(info1)
② clear()—清空
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
info1.clear()
print(info1)
③ formkeys()—根据序列来创建字典,指定统一的值
seq = ('Google', 'Runoob', 'Taobao')
a = dict.fromkeys(seq)  #默认None
print(a)
b = dict.fromkeys(seq, 10)  #指定为10
print(b)
④ get()—根据key获取值,key不存在时,可指定默认值
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
a = info.get('k1','123')  #存在
b = info.get('k0','123')  #不存在
print(a,b)
⑤ pop()—删除key对应的值,若无,则返回默认值
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
c = info.pop('k1',999)
d = info.pop('k0',999)
print(c,d)
⑥ popitem()—随机删除一个键值对,可获取删除值
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
n,m = info.popitem()
print(n,m)
⑦ setdefault()—设置值
info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
e = info.setdefault('k2',123)
f = info.setdefault('kn',123)
print(info,e,f)
⑧ update()—字典更新

若存在key,则对应的value值用新的覆盖;
若不存在key,则将新的加入进字典当中;

info = {'k1':'v1','k2':12,'k3':[1,2,'a',{'k11':'a','k12':(1,2)}],'k4':(1,2,3)}
info.update({'k1':123,'k9':999})
info.update(k2=123,k8=888)       #两种方式表示方法一样
print(info)

总结

列表、元组、字典三大兄弟,在Python中无处不在,而且还拥有举足轻重的地位,凡是出现大量数据的情况,三者必然出现。同样在Python魔法世界中犹如魔法百宝囊,可以存放各式各样的魔法道具,可谓是居家旅行必备神器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值