Python基础篇--容器
发布日期:2021-06-28 20:04:59
浏览次数:2
分类:技术文章
本文共 1898 字,大约阅读时间需要 6 分钟。
概念:可以存放多个元素的一种数据类型
###容器的种类 1.列表(list) 特点:基于线性表----双向链表的连续内存实现,元素有特定的顺序 列表的定义:#方法1ls = [1, 2, 3, 4]#方法2ls1 = list([1, 2, 3, "帅哥张"])
访问列表元素
列表中的元素是有序的集合,需要按照下表序号访问,默认序号从0开始。若访问下表序号不在列表范围内,则会抛出异常报错ls[2]ls1[0]
返回列表元素数量:通过全局函数实现
len(ls)len(ls1)
遍历容器:
# 方法一 for i in ls: print(i)# 方法二 index = 0 while index < len(ls1) print(ls1([index])) index += 1
列表元素的赋值:通过下标访问赋予对应元素的值,但只能赋予目前存在的与元素
ls[2] = 200
列表的方法属性:
#向列表尾部追加元素ls.append(20)#向列表固定位置插入元素ls.insert(2,200)#按列表内元素的大小,从小到大排序(只能是同种类型的数据)ls.sort()#查找元素第一次出现在列表的位置,如果列表中没有这个元素,则抛出异常报错ls.index(2)#将列表中的元素顺序反转ls.reverse()#移除列表中的元素,通过匹配元素本身移除,如果元素不存在,则抛出异常报错ls.remove(200)#统计列表中指定元素的个数ls.count()#清楚列表中的元素ls1.clear()#浅拷贝,拷贝ls中的元素到ls1,是在堆内存中对存储的数据拷贝ls2 = ls.copy()#合并列表,将ls列表中的元素合并到ls1ls1 = extend(ls)#删除列表最后一个元素,并返回这个元素ls.pop()
2.集合(set)
特点:底层基于哈希结构实现,元素是无序的,不能重复的 集合的创建:a = set()s = set({ 1, 2, 3, 4})x = { 1, 2,3 } 必须要有元素,否则就创建了一个字典
集合的常见方法
#增加元素,不能增加已有的元素,且元素是无序的 s.add(10) #求差集,a相对于s的差集a.difference(s)#求交集,a先对于s的并集a.intersection(s)#求并集。合并集合,但不会改变a的集合a.union(s)#更新集合,合并集合,但会改变a的集合a.update(s) #移除元素,但元素不存在,则不做任何操作a.discard(s)
3.元组:
特点:元素是有序的、可重复的、类型不可变的,元素一旦定义下来,则无法改变 元组的创建:t = (1, 2, 3, 4)tt = tuple()uu = tuple((1, 2, 3))
虽然元组不可变,如果元组内部元素是可变的,那么该元组就可变
z = (1, 2, [1,2 3],4)f[2].append(100)
常见方法
#index 同上#count 同上
- 字典(dict) 特点:以键值对形式存储 存储:
aa = { }z = dict()z = dict({ "a":100,"b":200})d = { "name":"shuai_ge_zhang","age":18,"gender":"boy"}
通过key访问对应的值:
若不存在,抛出异常报错d["name"]d["age"]d["gender"]
赋值:
d["age"] = 17 #改变原有的值d["address"] = "shaanxi_xi'an" 增加新的键值对
常见方法:
#获取key对应的值d["age"] #若不存在,则会抛出异常报错d.get("age") #若不存在,则会返回None#返回所有的keyd.key()#返回所有的值d.values()#设置一个默认值,当没有值返回时,就返回这个默认值d.setdefault()#返回键值对d.items()#通过key删除键值对,当没有该键值对是,则抛出异常报错d.pop("address")#移除键值对,移除的规则是LIFO(后进先出)d.popitem()
字典的遍历:
# 方法一for k in d.keys(): print(k,d.get(k))# 方法二for k in d: print(k,d[k])# 方法三for k,v in d.items(): print(k,v)
转载地址:https://blog.csdn.net/XY0918ZWQ/article/details/105052724 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月26日 13时52分44秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
大牛深入讲解!Android面试中常问的MMAP到底是啥东东?再不刷题就晚了!
2019-04-29
太赞了!你会的还只有初级安卓工程师的技术吗?3面直接拿到offer
2019-04-29
腾讯Android开发面试记录,安卓系列学习进阶视频
2019-04-29
阿里P8架构师的Android大厂面试题总结,醍醐灌顶!
2019-04-29
阿里、腾讯大厂Android面试必问知识点系统梳理,满满干货指导
2019-04-29
阿里大神最佳总结Flutter进阶学习笔记,内容太过真实
2019-04-29
阿里巴巴内部Jetpack宝典意外流出!送大厂面经一份!
2019-04-29
阿里正式启动2021届春季校招!字节跳动Android面试凉凉经,实战解析
2019-04-29
阿里珍藏版Android框架体系架构手写文档,原理+实战+视频+源码
2019-04-29
零基础也能看得懂!2021中级Android开发面试解答,附赠课程+题库
2019-04-29
震惊!靠着这份面试题跟答案,复习指南
2019-04-29
Android最强保活黑科技的最强技术实现,深度解析,值得收藏
2019-04-29
Android架构师必备框架技能核心笔记,面试心得体会
2019-04-29
Android架构师必备框架技能核心笔记,高级面试题+解析
2019-04-29
android热修复框架对比,12年高级工程师的“飞升之路”,含泪整理面经
2019-04-29
Android多线程实现方式及并发与同步,技术详细介绍
2019-04-29
Android开发究竟该如何学习,成功入职字节跳动
2019-04-29
三年老Android经验面经,看看这篇文章吧!
2019-04-29
为什么Android要采用Binder作为IPC机制?成功入职腾讯
2019-04-29
海量算法高频面试题精编解析,附超全教程文档
2019-04-29