Python自学之路-list、tuple、dict和set

上一篇「Python自学之路-数据类型和变量」主要简单说明了下数据类型和变量,这一篇主要和大家介绍下list、tuple、dict和set。相信后期在实战中会经常用到。

一、list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

首先可以定义一个城市的变量citys:

>>> citys=['Shanghai','Beijing','Guangzhou','Suzhou'] >>> citys ['Shanghai', 'Beijing', 'Guangzhou', 'Suzhou']

获取citys中某个元素,注意索引是从0开始的:

>>> citys[0] 'Shanghai'

Python有个特殊的技能,可以从最后一个元素开始取

>>> citys[-1] 'Suzhou'

追加元素可使用append(追加至末尾):

>>> citys.append('Wuhan') >>> citys ['Shanghai', 'Beijing', 'Guangzhou', 'Suzhou', 'Wuhan']

元素插入到指定的位置使用insert:

>>> citys.insert(1,'Qingdao') >>> citys ['Shanghai', 'Qingdao', 'Beijing', 'Guangzhou', 'Suzhou', 'Wuhan']

删除置顶位置的元素使用pop(i),i为索引位置,不填表示删除末尾的元素:

>>> citys.pop() 'Wuhan' >>> citys ['Shanghai', 'Qingdao', 'Beijing', 'Guangzhou', 'Suzhou']

元素替换可以直接赋值:

>>> citys[0]='上海' >>> citys ['上海', 'Qingdao', 'Beijing', 'Guangzhou', 'Suzhou']

另外,list中的元素类型可以是不同的:

>>> test=['上海',520,True] >>> test ['上海', 520, True]

二、tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

list定义时是使用[],而tuple是使用()

由于定义的tuple不能变,所以也就不存在append(),insert()这样的方法,但其他获取元素的方法还是和list一样的。

有两个注意点需要注意:

1.定义tuple时,元素必须确定下来,当定义一个元素的时候必须加一个逗号','。用来区分()是表示数学公式中的小括号,还是tuple的元素集合边界。

2.tuple中的不可变是指指向不可变。但指向的这个元素本身是可以改变的,比如tuple中嵌套个元素list,那list中的元素是可以改变的。

三、dict

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

相较于list而言,dict的查找和插入的速度极快,同时也不会随着key的增加而变慢。但同时,所占用的内存也相对较多。

>>>d = {'张三':1,'王四':2,'李五':3} >>>d['张三'] 1

这里要注意的是,一个key只能对应一个value,多次赋值只会覆盖。

要判断key在dict中存不存在有两种方式:

一是通过in判断key是否存在:

>>> '张三' in d True

二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value,如果存在则返回1:

>>> d.get('张三') 1 >>> d.get('张三儿子',-1) -1

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

>>> d.pop('张三') 1 >>> d {'王四': 2, '李五': 3}

四、set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

大家可以看到,重复元素在set中自动被过滤,同时显示的顺序也不表示set是有序的

>>> s = set([11, 22, 33,44,55,44,55]) >>> s {33, 11, 44, 22, 55}

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(66) >>> s {33, 66, 11, 44, 22, 55}

通过remove(key)方法可以删除元素:

>>> s.remove(66) >>> s {33, 11, 44, 22, 55}

五、总结

本次主要整理了list、tuple、dict和set一些常规用法和注意点,相较于其他编程语言还是类似的,如果没有编程基础的可以多看看,多敲敲,相信实战中会经常用到的。

原文发布于微信公众号 - Bug生活2048(BugLife2048)

原文发表时间:2017-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菜鸟计划

javascript 基本概念

一、在HTML中使用javascript 1.直接是用<script></script>标签。 2.外部引入 <script type="javascript"...

26730
来自专栏抠抠空间

细数Python中的数据类型以及他们的方法

一、数据类型的种类及主要功能 1、数字类型   数字类型主要是用来计算,它分为整数类型int和浮点类型float 2、布尔类型   布尔类型主要是用于判断,它分...

34250
来自专栏CaiRui

Python之函数

简介: 定义函数: def xx():     print("xxx") 执行函数 xx() 函数返回值: def emile(): print("发邮...

28790
来自专栏Golang语言社区

Go语言语法汇总

最近看了看GoLang,把Go语言的语法总结了一下,做个快速参考 数据类型 ---- var varName type,var var1,var2… type,...

44480
来自专栏编程

Python读书笔记5

上期分享了Python相关的字符串应用,重点分享了转义字符。今天和大家分享和字符串相关的函数和应用。 一、字符串的合并! Python用“+”号可以连接两个文本...

22670
来自专栏林德熙的博客

win10 uwp 如何判断一个对象被移除

有时候需要知道某个元素是否已经被移除,在优化内存的时候,有时候无法判断一个元素是否在某个地方被引用,就需要判断对象设置空时是否被回收。 本文告诉大家一个简单的方...

8110
来自专栏iOS开发攻城狮的集散地

assign,retain,copy,strong

18950
来自专栏数据结构与算法

BZOJ3585: mex(主席树)

Description   有一个长度为n的数组{a1,a2,...,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。 Input   第一行n,m...

43290
来自专栏更流畅、简洁的软件开发方式

静态变量 静态对象 静态函数和非静态函数的区别。(我的理解,大家看看对不对)

先明确一下 语言:asp.net C# 1、静态变量: static string str1 = "1234"; 2、静态对象 static SqlConn...

24250
来自专栏闪电gogogo的专栏

Python——正则表达式

此篇文章结合小甲鱼的笔记和视频整理。 1 编译 Python 通过 re 模块为正则表达式引擎提供一个接口,同时允许你将正则表达式编译成模式对象,并用它们来进行...

295100

扫码关注云+社区

领取腾讯云代金券