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     同上
  1. 字典(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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python基础篇--字符串
下一篇:Python入门--三大控制流程

发表评论

最新留言

初次前来,多多关照!
[***.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