Python——列表和字典的区别

参考Python中列表和字典有什么区别?作的学习记录。

2020年11月3日:补充列表倒序三种方式,以及操作注意点

列表

列表具有“异构性”,可以包含不同类型的对象

l = [1, [2.3, 4]'temp']

列表是“有序的”,切片,左闭右开

l = [1,2,3,4,5,6,7]
l[1:4] = [2,3,4]
#1:4表示序号1到序号4,序号为1的为2,序号为4的为5,根据左闭右开,所以为[2,3,4]
l[1:] = [2,3,4,5,6,7]
l[:6] = [1,2,3,4,5,6]
l[:7]#报错SyntaxError: invalid character in identifier,超出最大序号了
l[:] = l

负索引

l = [1,2,3,4,5,6,7]
l[2:-1] = [3,4,5,6]#2代表起始序号(正序),-1代表末序号(逆序) ,即序号为7是-1,序号为6也是-2,依然遵守前闭后开

步进切片

l = [1,2,3,4,5,6,7]
l[0::2] = [1,3,5,7]#0代表起始序号,2代表步进
l[1::3] = [2,5]

列表插入,修改,删除不需要重新建表

***********插入
l = [1,2,3,4,5,6,7] 
l.append(8)#在尾部插入
print(l) #[1,2,3,4,5,6,7,8]
l.insert(1,1.5)#1代表插入位置,插入1.5
print(l)#[1,1.5,2,3,4,5,6,7,8]
l.insert(10,11)#插入位置大于列表长度,则在末尾插入
print(l)#[1,1.5,2,3,4,5,6,7,8,11]
l.extend([12,13,14])#同时在尾部插入多个元素
print(l)#[1,1.5,2,3,4,5,6,7,8,11,12,13,14]
***********修改
l = [1,2,3,4,5]
l[0] = "?"
print(l)#['?',2,3,4,5]
l[0:2] = ['a,'b']
print(l)#['a','b',3,4,5]
***********删除
l = [1,2,3,1]
l.remove(1)
print(l)#[2,3,1],默认删除第一个1
l = [1,2,3,1]
del l[3:]#del是python的一个内置函数,可依切片删除,也可以删除多个元素
print(l)#[1,2,3]
l.pop()#返回最后一个元素的值3,有点像栈顶出栈
print(l)#[1,2]

注意:以上的append,insert,extend,remove,pop方法是“操作”,而并非直接返回一个列表。

排序

l = [2,1,3,4,5,6,7,8,11,12,13,14]
l.sort()
print(l)#[1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14]

倒序输出

l = [2,1,3,4,5,6,7,8,11,12,13,14]
print(l[::-1])#[14, 13, 12, 11, 8, 7, 6, 5, 4, 3, 2, 1]
l = [2,1,3,4,5,6,7,8,11,12,13,14]
l.reverse()#列表的倒序输出
print(l)#[14, 13, 12, 11, 8, 7, 6, 5, 4, 3, 2, 1]
l = [2,1,3,4,5,6,7,8,11,12,13,14]
print(list(reversed(l)))#函数reversed 返回一个迭代对象,需要list化

注意:以上的sort,reverse方法是“操作”,而并非直接返回一个列表。比如你想做这样的判断,判断一个列表是否有序,if(l = l.sort()),这样是不行的。

字典

字典和列表完全不同,它包含的是一对对键值,每个键都是唯一的。通过键来而非列表那样通过位置索引。异构无序

Dic = {'color':'red',
	   'num':1,
	   'list':[1,3,4],
       'gender':{'男':1,'女':2}
       }

读取

print(Dic['color'])#red

插入

Dic['alibaba'] = 1
Dic['num'] = 2
print(Dic)	
		#{'color':'red',
	   #'num':2,
	   #'list':[1,3,4],
      # 'gender':{'男':1,'女':2},
       #'alibaba':1
      #}

用列表生成字典

a = ['one','two','three']
b = [1,2,3]
Dic = dict(zip(a,b))
print(Dic)#{'one': 1, 'two': 2, 'three': 3}

用键值对元组组成字典

Dic = dict([('a',1),('b',2)])
print(Dic)#{'a':1, 'b': 2}

获取键值

Dic = {'a':1,'b':2}
print(list(Dic.keys()))#['a', 'b']
print(list(Dic.values()))#[1,2]
print(list(Dic.items()))#[('a', 1), ('b', 2)]
#list是列表方法,注意不要定义list = []形式的列表,否则会报错TypeError: 'list' object is not callable

删除键

Dic = {'a':1,'b':2}
del D['a']
print(Dic)#{'b': 2}
Dic = {'a':1,'b':2}
print(Dic.pop('a'))#1
print(Dic)#{'b':2}

排序

字典的排序实际是上对键的排序

Dic = {'color':'red',
	   'num':1,
	   'list':[1,3,4],
       'gender':{'男':1,'女':2}
       }
sorted(Dic)#['color', 'gender', 'list', 'num']
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂java杰尼龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值