【Python】Java程序员学习Python(九)— 集合(list、tuple、range)和映射(dict)
集合是一门语言最重要的一个特性,对集合支持的程度越好,使用起来越方便
一、表现形式
1.1 list
list的基本用法:
- 使用中括号包裹,[1,2,3]
- 元素类型可以是任意类型,同样可以是list
- 支持索引下标和分片
常用方法如下:
- L.append(object) :增加一个元素到尾部
- L.clear():清空list
- L.copy():副本,注意只是浅拷贝
- L.count(value):value出现的次数
- L.extend(iterable): 添加一个序列到尾部
- L.index(value, [start, [stop]]):返回value元素首次出现的位置,不存在会报ValueError
- L.insert(index, object):在指定位置插入元素
- L.pop([index]):移除并返回指定元素,默认最后一个
- L.remove(value):移除首次出现的元素,不存在会报ValueError
- L.reverse():反转
- L.sort(key=None, reverse=False):排序
可应用的全局方法:
- len():list的长度
- max(L):list的最大值
- min(L):list的最小值
1.2 tuple
tuple的用法和list一样,只是tuple是不可变的,并且是用小括号来包裹。
1.3 range
range代表整数区间,两种用法:
- class range(stop)
- class range(start, stop[, step])
表示从开始(包括)到结束(不包括),以步长为step的整数列表。
常用方法:
- list(R):将区间转换成list
- 其他方法同list
1.4 dict
dict就是Java中的HashMap,键值对的映射。
- 使用大括号括起来的键值对,类似于json
- 键值可以是任何类型
常用方法:
- len(dictview):返回字典中的条目数。
- d[key]:返回字典d中键为key的元素。如果key不在映射中,则引发一个KeyError
- d[key] = value:设置d[key]的值为value
- del d[key]:从d中删除d [key]。引发KeyError如果键不在映射中
- key in d:如果d有键key,则返回True,否则False
- key not in d:相当于not key in d
- iter(d):返回字典的键上的一个迭代器。这是iter(d.keys())的快捷方式
- clear():从字典中删除所有项目
- copy():返回字典的一个浅拷贝
- classmethod fromkeys(seq[, value]):与键从seq和值将设置为值创建一个新的字典
- get(key[, default]):如果 key 在字典里,返回 key 的值,否则返回 default 值。 default 默认为 None
- items():返回字典项目的新视图((key, value)对)
- keys():返回字典的键的新的视图
- pop(key[, default]):如果键在字典中,请将其删除并返回其值,否则返回默认值。如果未给出默认值且键不在字典中,则会引发KeyError
- popitem():从字典中移除并返回任意一个(key, value)对
- setdefault(key[, default]):如果key在字典中,则返回其值。如果没有,则插入值为default的key,并返回default。default默认为None
- update([other]):依据other更新词典的键/值对,覆盖现有的键
- values():返回字典的值的新的视图
先熟悉了基本用法,后续了解深入后补上
【Python】Java程序员学习Python(九)— 集合(list、tuple、range)和映射(dict)的更多相关文章
- 【Python】Java程序员学习Python(五)— 函数的定义和使用
不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...
- 【Python】Java程序员学习Python(二)— 开发环境搭建
巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. ...
- 【Python】Java程序员学习Python(三)— 基础入门
一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...
- 【Python】Java程序员学习Python(六)— 流程控制、异常处理
和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...
- 【Python】Java程序员学习Python(十)— 类、包和模块
我觉得学习到现在应该得掌握Python的OOP编程了,但是现在还没有应用到,先留一个坑. 一.类和对象 说到类和对象其实就是在说面向对象编程,学完Java以后我觉得面向对象编程还是很不错的,首先封装了 ...
- 【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)
如果一个女孩子喜欢看龙猫,那么请珍惜她,呵护她 任何一门语言,字符串总是最基本也是最需要掌握的一个变量,想想入门的Hello World,输出的就是字符串. 官方文档:https://docs.pyt ...
- 【Python】Java程序员学习Python(四)— 内置方法和内置变量
<假如爱有天意> 当天边那颗星出现,你可知我又开始想念,有多少爱恋只能遥遥相望,就像月光洒向海面,年少的我们曾以为,相爱的人就能到永远,当我们相信情到深处在一起,听不见风中的叹息,谁知道爱 ...
- 【Python】Java程序员学习Python(一)— 为什么学习Python
现在是6月份,毕业快3年了,虽然不能说对Java掌握的程度达到了如火纯青的地步,但是依然感觉到了瓶颈期,Java用的多了,也到了随心所欲的地步了,所以学第二门语言的想法一直在我脑海里闪现,有想法了就要 ...
- 【Python】Java程序员学习Python(十一)— IO
一.前言 io的内容其实还是有很多的,现在我也只是了解初步用法,当然详细内容还是应该参照官方api的: 官方api:https://docs.python.org/3/library/os.html. ...
随机推荐
- Scala中使用implict 扩展现有类的方法
Scala中implict的一种用法就是扩展现有类的方法,有点类似于.Net中的扩展方法(MS对扩展方法的介绍:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改 ...
- Opserver 初探二《exceptions配置》
上一节主要介绍Opserver的搭建以及redis.sqlserver监控的配置,本节主要介绍异常日志的记录和监控.要实现异常日志的监控我们需要在项目中引入StackExchange.Exceptio ...
- android动态权限获取
android动态权限获取 Android6.0采用新的权限模型,只有在需要权限的时候,才告知用户是否授权,是在runtime时候授权,而不是在原来安装的时候 ,同时默认情况下每次在运行时打开页面时候 ...
- Spring Security构建Rest服务-0300-Restful API异常处理
SpringBoot默认的错误处理机制: 一.测试需要的部分代码 (完整代码放在了github https://github.com/lhy1234/spring-security): UserCon ...
- 【树】Kth Smallest Element in a BST(递归)
题目: Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. ...
- 一款高效视频播放控件的设计思路(c# WPF版)
因工作的需要,开发了一款视频播放程序.期间也经历许多曲折,查阅了大量资料,经过了反复测试,终于圆满完成了任务. 我把开发过程中的一些思路.想法写下来,以期对后来者有所帮助. 视频播放的本质 就是连续的 ...
- 机器学习--集成学习(Ensemble Learning)
一.集成学习法 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好) ...
- redis-手写redis切片和非切片连接池并注入springboot中
spring-data整合了redispool, 并提供redisTemplate使用, 但有时需要用到shradedJedisPool, 就需要手动注入了 手写redispool并注入springb ...
- mysql RC下不存在则插入
mysql版本:5.7 目的:在RC下,name列上仅有key索引,并发插入name时不出现重复数据 RC不加gap lock,并且复合select语句是不加锁的快照读,导致两个事务同时进行都可插入, ...
- java NIO系列教程1
ava NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式. Java NIO: Channel ...