文档章节

Python之几种重要的基本类型:元组,列表,字典,字符串,集合

小海岛
 小海岛
发布于 2017/09/10 17:05
字数 1967
阅读 0
收藏 0
点赞 0
评论 0

写在前面:重点讲解元组,列表,字典相关概念和常用操作。

一、元组(tuple)

1.特性:不可更改的数据序列。【理解:一旦创建元组,则这个元组就不能被修改,即不能对元组进行更新、增加、删除操作

2.创建:一对圆括号“()”和其包含的元素(若没有元素,则为空元组)。

    创建一般元组:即一维元组。如:tempTuple = ("one","two","three",4,5,6)。

    创建嵌套元组:元组中还可以包含元组,即嵌套元组或二维(多维)元组。如:mulTuple = (("you","are","a","dog"),"you","too")。

  注:若想创建包含一个元素的元组,则必须在该元素后面加逗号“,”,否则创建的不是一个元组,而是一个字符串。

    如:aTuple = ("one",),aString = ("one")。type(aTuple) -> "tuple",type(aString) ->"string"。

3.访问:元组名[index],index为元素在元组中的索引,索引为整数,从0开始。注意:index不能越界,否则会报错。

    访问一般元组:tempTuple[0] -> "one",tempTuple[3] -> 4。

    访问嵌套元组:mulTuple[0][1] ->"are"。

  注:可以使用负数作为索引来访问元组。-1代表最后一个元素,-2代表倒数第二个,以此类推。如:tempTuple[-1] ->"too"。

        可用for循环遍历元组。如:for element in tempTuple: print(elment)。

4.求长:len(元组名)。如len(tempTuple) ->6。(长度也即元组中元素的个数)。

5.打印:print(元组名),可打印元组中的所有元素。

6.类型:type(元组名) ->"tuple"。

7.删除:del 元组名,删除元组,当访问被删除的元组时会报错,提示:元组未定义。(其他类型也可以用此方法)

二、列表(list)

1.特性:可更改的数据数列。(区别于元组,可动态增加,删除,更新)

2.创建:一对方括号“[]”和其包含的元素,单个元素可以不加逗号,同元组一样,可以创建嵌套列表。如:tempList = ["one","two","three"]。

3.基本操作及方法:

  (1)访问、遍历、求长、打印、类型等操作同元组

  (2)更新:给列表中的元素重新赋值,不可给列表中不存在的元素赋值。如:tempList[2] = 3 ->tempList = ["one","two",3],tempList[3] = "four" ->报错!!!

  (3)删除:删除元素后(若不是最后一个),右边的元素会左移。

    1)del:删除指定元素。如:del tempList[0] ->tempList = ["two","three"]

    2)pop:删除指定位置的元素并返回被删除的元素,默认删除最后一个。如:element = tempList.pop(1) ->element = two,tempList = ["one","three"]。

  (4)增加(插入):

    1)append:向列表末尾添加一个元素,参数不能为空,否则报错。如:tempList.append("four") ->tempList = ["one","two","three","four"]。

    2)extend:向列表末尾添加多个元素,参数不能为空,不能是int型,可为字符串(当成列表处理,每个字符就是一个元素)、元组、列表。如:

         参数为字符串:tempList.extend("str") ->tempList = ["one","two","three","s","t","r"]。

         参数为元组或列表:tempList.extend(("four",“five”)) ->tempList = ["one","two","three","four",“five”]。

    3)list[index:index] = [value]:向列表list指定的位置index插入一个元素。如:tempList[1:1] = ["add"] -> tempList = ["one","add","two","three"].

      注:更一般的形式:listname[start:end] = 元组/列表/字符串,可插入多个元素.

4.高级操作及方法:

  (1)产生一个数值递增列表:

      1)pList = range(N),产生一个元素值为0~N-1的列表。如:pList = range(10) ->pList = [0,1,2,3,...,9]。

      2)pList = range(sn,en),产生一个元素值为sn~en-1的列表。如:pList =  range(1,5) ->pList = [1,2,3,4]。

      3)pList = range(sn,en,inc),产生一个元素值以inc递增的列表。如:pList = range(1,10,2) ->pList = [1,3,5,7,9]

  (2)固定值初始化:pList = [value for index  in range(N)],产生一个长度为N的列表,元素值都为value.

      如:value = "x",N=10,则pLsit = ["x","x",...,"x"]

    更简单的形式:pList = [value]*N。

  (3)操作符:

    1)"+":两个列表相加,将合成为一个列表。如 pL1 = [1,2],pL2 = [3,4],pL1+pL2 ->[1,2,3,4]

    2)"*":形式:[value]*N。如value="a",N=4,则得到列表["a","a","a","a"]。

    3)del:del pL[index]:删除指定位置的元素。 del pL[sIndex:eIndex]:删除sIndex~eIndex-1位置的元素。

  (4)列表复制:

    1)pL1 = pL:pL1为pL的别名,即pL1和pL实质为同一个列表,修改其中一个列表,另一个列表也随之变化。

        如:pL = [1,2,3],pL1 = pL,pL1[2] = 33,->pL = pL1 = [1,2,33]

    2)pL2 = pL[:]:pL2为pL的一个克隆(或拷贝),即pL2和pL为不同的列表,修改其中一个列表,另一个不会受影响。

  (5)常用方法:

         1)L.append(value):向列表末尾插入一个元素

    2)L.insert(index,value):向列表的index位置插入一个元素value。
    3)L.pop(index): 从列表中删除指定位置index的元素并返回元素值,默认删除最后一个元素。
    4)L.remove(value):删除在列表中第一次出现的元素value。如:pList = [1,2,3,2],pList.remove(2) ->pList = [1,3,2]。
    5)L.count(value):返回元素value在列表中出现的次数。
    6)L.index(value) :该元素第一次出现的的位置,无则抛异常 。
    7)L.extend(list/tuple/string) :向列表末尾插入多个元素。
    8)L.sort():排序

    9)L.reverse():倒序

三、字典(dictionary)

1.特性:以名称索引的分组数据。元组和列表以数字顺序索引,而字典的索引可以数字,字母,字符串,符号等。

    在字典中,索引叫做:键,即key,对应的值叫做值,即value。

2.创建:dic = {key1:value1,key2:value2},可先创建空字典dic ={},然后再初始化,如dic["one"] = "firstValue"。

    注:键是唯一的,字典只认最后一个赋的键值。如:dic = {1:1,2:2,1:3} ->dic = {1:3,2:2},最后一个元素(1:3)被“舍弃”。

3.访问:dic[key],获得key对应的值,若key不存在,则报错。

4.常用方法和操作:

    1)D.get(key, defualtValue):获得key对应的值,若key不存在,则返回设置的默认值defualtValue,若没有设置默认值则返回None。
    2)D.has_key(key) :检查字典中是否存在键key,有该键返回TRUE,否则FALSE。
    3)D.keys():返回由字典所有键构成的列表。
    4)D.values():返回由字典所有值构成的列表。
    5)D.items():返回由字典所有键值对构成的列表,即[(key1,value1),(key2,value2),(key3,value3),...]。

    6)D.update(dic2):将字典dic2中的元素合并到字典D中。
    7)D.popitem():随机删除字典中的一个键值对(一项),并返回值。若字典为空则抛出异常。
    8)D.clear():清空字典中的元素并返回None

    9)D.pop(key):删除指定键所对应的项,并返回key对应的值。key不能为空,也不默认删除排在最后的元素,因为字典是无序的,注意和列表的区别!!!
    10)D.copy():拷贝字典,两个字典不是同一个字典。如d = {1:1,2:2},d1 = d.copy() ->d1 = {1:1,2:2}。
    11)cmp(dict1,dict2):比较字典,(优先级为元素个数、键大小、键值大小),第一个大则返回1,第一个小则返回-1,一样大则返回0。
               

四、字符串(string)

1.特性:不能修改的字符序列。除了不能修改,可把字符串当成列表一样处理。

2.访问:访问字符串中某个字符同访问元组或列表中的元素是一样的,专业术语叫“分片(slicing)”。如:str = "aString",str[0] = "a",str[1] = "S"。

  这里不做深入讨论字符串,把字符串放在这里主要是为了说明字符串具备列表的一些特点。

五、集合(set)

1.特性:与字典类似,但只包含键,而没有对应的值,包含的数据不重复。

2.创建:s = set(list or tuple or string)。重复的值在集合中只存在一个。如:

    列表list:s = set([1,2,3,3]) ->s = set([1,2,3])

    元组tuple:s = set((1,2,3))  ->s = set([1,2,3])

    字符串string:s = set("abc") ->s = set(["a","b","c"])

 

© 著作权归作者所有

共有 人打赏支持
小海岛
粉丝 0
博文 5
码字总数 1201
作品 0
一张图认识Python(附基本语法总结)

一张图带你了解Python,更快入门, 视频介绍>>>> 简单学Python安全简单学Python安全">http://edu.51cto.com/center/course/lesson/index?id=263601)简单学Python安全 Python基础语法总结: ......

安全牛课堂 ⋅ 05/22 ⋅ 0

第二篇:python基础之数据类型与变量

数据类型 什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示...

linhaifeng4573 ⋅ 2016/10/06 ⋅ 0

Python爬虫入门 | 3 爬虫必备Python知识

点击上方蓝色字体,关注我们 15 这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就...

ch3ruf0termb3yh ⋅ 04/20 ⋅ 0

Python3基础知识点的讲解(四)

绪论 本篇文章既上篇文章之后为大家带来的是关于Python3中一些基础的知识点,通过上篇的学习,我们队Python3中的一些基本的语法有所了解和掌握。 主要内容的介绍 字典的介绍 字典的运用 元组...

长风留言 ⋅ 06/08 ⋅ 0

python基础数据类型(二)

根据http://runoob.com自己整理输出内容。 Python中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才回被创建。 标准库模块keyword.kwlist下包含了不可作为标识符的所有...

白羊IT ⋅ 2017/10/29 ⋅ 0

python学习笔记二 列表、字典、集合

1、列表 #!/usr/bin/env python *coding:utf-8* names = ['Alex',"Tenglan",'Eric'] print names[0] //python2.7不必加括号 print (names[0]) #!/usr/bin/env python *coding:utf-8* 切片:取......

corasql ⋅ 2017/03/26 ⋅ 0

Python 3 极简教程 之 基本数据类型

Python 3 极简教程 之 基本数据类型 吴小龙同學2017-11-0428 阅读 Python Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典...

吴小龙同學 ⋅ 2017/11/04 ⋅ 0

python3入门与进阶(一)

最近学习了python3的语法,整理记录一下; 语法是编程的先决条件,精通语法是编好程序的必要条件; 导语 给我最大的感觉是:这个语言的编写,居然不使用 来控制代码块的区域,而是使用缩进来...

icessun ⋅ 2017/12/23 ⋅ 0

程序员必备,快速学习 Python 的全套14张思维导图(附高清版下载)

后台回复关键词 思维导图 可获取本文中的高清思维导图(PDF版) ML & AI∣一个有用的公众号 长按,识别二维码,加关注 获取更多精彩文章

micf435p6d221ssdld2 ⋅ 05/23 ⋅ 0

复习0610—Python数据类型

程序就是 算法 + 数据结构 Python 中,自带数据类型。常见的数据类型包括:数值类型、字符串类型、群集类型。 一、数值类型 在Python中,数值类型包括整型、浮点型、布尔型、复数型。 【1】整...

python初雪之路 ⋅ 06/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 18分钟前 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 37分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 46分钟前 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 55分钟前 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部