热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python容器的简介

容器的定义容器是编程语言提供给开发者使用的对象python官方提供四种常见的容器:list列表set集合tuple元组dict字典list为有序的数列在程序中&#x

容器的定义
容器是编程语言提供给开发者使用的对象

python官方提供四种常见的容器:
list 列表
set 集合
tuple 元组
dict 字典
list
为有序的数列
在程序中,线性表:数组、链表、栈、队列
python的list的底层就是基于双向链表结构设计的

定义list:
1、借助弱数据类型语言的特点
[] # 列表是以[]的形式表现
ls = [] # 空列表
ls = [1, 2,3,4,5] # 创建了一个有如下元素的列表
2、借助python提供的一个全局函数创建list
ls = list()
ls = list([1,23,3,4,4554])
访问list中的元素(element)
线性表,都是具有下标(索引)的:下标从0开始,不要越界
列表对象[下标]
注意:
print(ls[4]) # 访问ls中的第五个元素
ls[1] = 100 # 将ls列表中的第二个元素值修改为100

用来统计list中的元素:
全局函数:len()

如何遍历列表
1、使用循环遍历

for index in ls2:print(index)

2、使用while循环遍历列表

index &#61; 0while index < len(ls2):print(ls2[index])index &#43;&#61; 1

list的常见方法&#xff1a;
append(元素) # 在列表尾部追加元素
insert(index, 元素) # 在对应索引为插入元素
remove(元素) # 移除元素&#xff0c;如果不存在&#xff0c;则报错
pop(index&#61;-1) # 默认移除最后一个元素&#xff0c;如果存在参数&#xff0c;则该参数就是要移除的下标&#xff0c;注意&#xff1a;下标有误&#xff0c;会抛出异常
clear() # 清空列表
reverse() # 翻转列表元素顺序
sort() # 排序
index(元素) # 查找元素的位置
count(元素) # 统计元素的数量
extend # 合并列表
copy() # 复制列表对象&#xff0c;其本质是浅拷贝

set
是无序的&#xff0c;并且不能重复
底层使用的hash表&#xff08;哈希表&#xff09;的结构设计的
定义&#xff1a;
1、借助弱数据类型语言的特点
注意&#xff1a;必须要存在值&#xff0c;否则默认空{}是字典类型&#xff0c;而不是set
s &#61; {1,2,4}
2、全局set函数
s &#61; set()

注意&#xff1a;遍历只能使用for循环遍历&#xff0c;while没有办法遍历&#xff08;无序&#xff09;

常见方法&#xff1a;

add() # 添加元素clear() # 清除列表copy() # 浅拷贝对象difference() # 差集intersection() # 交集union() # 并集remove(元素) # 移除元素&#xff0c;如果不存在&#xff0c;则报错pop(元素) # 随机&#xff08;arbitrary&#xff09;移除&#xff0c;不存在&#xff0c;则报错discard(元素) # 随机&#xff08;arbitrary&#xff09;移除&#xff0c;不存在&#xff0c;则什么都不做

tuple
它的元素不可以改变

常见方法&#xff1a;
count # 统计元素个数
index # 查看元素索引位置

注意&#xff1a;t &#61; (1) 类型为intt &#61; (1,) 类型为tuple

dict
它的定义&#xff1a;
d &#61; {}
d &#61; {k1: v1, k2: v2}
d &#61; dict({})

1.可以使用key访问到key对应的值
d[“k1”]
d.get(“k2”)

2.p[“name”] &#61; “yyqx” # 增加value值

常见方法&#xff1a;
clear #清空元素
copy #复制
get #获得value值
keys() # 将所有的key返回
values() # 将所有的值返回
setdefault #设置默认值
items() # 一对一对的返回
pop(key) # 通过key删除对应键值对
popitem() # 安装 LIFO (last-in, first-out) order 删除key对应值

字典的遍历方式&#xff1a;
1、

for key in p:print(key, p[key])

2、

for key in p.keys():print(key , p.get(key))

3、

for key, value in p.items():print(key, value)

4、

for (key, value) in p.items():print(key, value)

5、

for t in p.items():print(t[0], t[1])

全局函数&#xff1a;
print()
input()
type()
range()
list()
len()
exit()
help() # 调用帮助问题
dir() # 查询对象的所有属性或者方法
reverse() # 翻转列表


推荐阅读
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了Java的公式汇总及相关知识,包括定义变量的语法格式、类型转换公式、三元表达式、定义新的实例的格式、引用类型的方法以及数组静态初始化等内容。希望对读者有一定的参考价值。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 给定一个二维平面上的一些点,通过计算曼哈顿距离,求连接所有点的最小总费用。只有任意两点之间有且仅有一条简单路径时,才认为所有点都已连接。给出了几个示例并给出了对应的输出。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
author-avatar
铁血aaaaaaaaaaaaa_295
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有