[转载] 列表、元组及通用序列操作

参考链接: Python | 重点数据类型 (字符串,列表,元组,迭代)(String, List, Tuple, Iteration)

序列是Python中最基本的数据结构(一些基本特性类似于C++中的数组模板类),序列中的每一个元素都有相应的位置序号,从0开始。列表和元组属于序列,因此用于通用序列的操作都可以应用于它们,同时它们也有各自独特的方法。

 

通用序列操作 

 

所有的序列类型都可以进行某些特定的操作,例如索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、迭代(iteration)、成员资格检查等。

 

索引(indexing) 

 

序列中的所有元素都有对应的位置序号——从0开始递增。我们通过其对应序号访问某一个或某些元素的过程就是索引的过程。除了整数索引外,Python还提供了负数索引以更方便地访问序列元素。使用负数索引时,Python会从序列的右边,也就是最后一个元素开始计数,-1代表最后一个元素,-2代表倒数第二个元素,依此类推(没有-0)。 序列字面值能够直接使用索引,而不需要通过变量来访问。  

如果一个函数调用返回一个序列,那么可以直接对返回结果(也就是序列)进行索引操作。 

 

#!/usr/bin/env python

str1 = "Hello World!"

print str1[0]

print str1[-1]

 

print "Hello World!"[0]

 

str2 = raw_input("Please enter a string: ")[2]

print str2

 

 

 

  

分片(slicing) 

 

分片操作可以用来访问序列中一定范围内的元素。分片操作通过一个冒号隔开的两个索引来实现,此时将访问包括第一个索引序号,不包括第二个索引序号的范围内的序列元素,也即左闭右开的半开区间。 Python的索引操作支持负数索引,因此也可以用负数索引方便地访问序列中排在末尾部分的元素。需要注意的是,由于分片的索引范围是左闭右开区间,因此如果需要访问最后一个元素时,需要置空第二个索引。同样如果要从第一个元素开始访问,也可以置空第一个索引(与0效果相同)。 在分片的时候,我们还可以设置第三个参数——步长,来满足我们的一些特殊需求。默认情况下步长参数的值为1,我们可以显式地设置它。  

步长参数甚至支持负数,如果步长为负数,分片操作将会从右往左提取序列元素,使用负数步长时第一个索引序号必须大于第二个索引序号,否则分片结果会为空。对于负数步长,分片操作依然按照左闭右开区间来提取序列元素。 

 

 

#!/usr/bin/env python

str = "Hello, world!"

print str[0:3]

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print num[1:6]

print num[-3:-1]

print num[-3:]

print num[:3]

print num[:]

print num[0:8:2]

print num[8:0:-2]

 

 

 

 

加(adding) 

序列相加的操作很简单,可以将序列连接在一起,但加操作只能应用于相同类型的序列,例如列表和字符串是不能连接在一起的。 

 

#!/usr/bin/env python

str1 = "Hello, "

str2 = "world"

print str1+str2

num1 = [1, 2, 3]

num2 = [4, 5, 6]

print num1+num2

 

 

 

 

 

 

乘(multiplying) 

 

序列的乘操作是一个序列乘一个数字n(正整数),其结果会生成一个新的序列,这个新序列内的元素为原来的序列被重复n次。  

利用序列的乘操作可以初始化列表。Python中有一个內建值None,与C中的NULL和C++中的nullptr一样,代表空值。因此可以利用空值None结合乘操作来创建或者初始化序列。 

 

str = "Hello"

print str*3

init = [None]*10

print init

 

 

   

成员资格检查 

这个操作可以检查一个值是否在序列中,用in运算符实现,该运算符返回一个布尔值。 

 

str = "This is a string."

print 'i' in str

print 'o' in str

 

 

 

 

长度、最小值和最大值 

内建函数len、min和max分别返回序列的元素数量、最小值、最大值。 

 

num = [8, 24, 33, 135, 1024]

print len(num)

print min(num), max(num)

 

 

 

 

列表(List) 

列表是一种可变的序列,可以改变列表的内容。列表的定义方式在通用序列操作中已经出现了很多次:使用中括号[]将列表括起来,列表元素之间用逗号“,”隔开。除此之外,Python还提供了一个非常好用的内建函数list来将各种类型的序列转化为列表。 

 

demo_of_list1 = [1, 2, 3]

print demo_of_list1

demo_of_list2 = list("Hello, world")

print demo_of_list2

 

 

 

 

列表操作 

1.元素赋值  

结合索引和赋值语句,可以很简单地对列表元素进行赋值(列表元素必须存在)。 

 

#!/usr/bin/env python

tmp = [None]*10

print tmp

tmp[2] = 24

print tmp

 

 

 

 

2.元素删除  

使用del语句就可以删除元素。 

 

#!/usr/bin/env python

tmp = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print tmp

del tmp[0]

print tmp

del tmp[0:8]

print tmp

 

 

 

 

3.分片赋值  

结合分片操作可以对列表中的多个元素进行赋值,甚至变相达到插入、删除元素的目的。 

 

#!/usr/bin/env python

#coding:utf-8

num = [ 1, 2, 3, 4, 5, 6]

print num

num[0:2] = [24, 33]

print num

num[:2] = [0, 1, 2] #替换元素长度可以与被替换部分不同

print num

num[3:3] = [33, 24, 794]

print num

num[:6] = []

print num

 

 

 

列表方法 

1.append append用于在列表末尾追加新的对象,append方法直接修改原列表,无返回值,且一次方法调用只能追加一个对象。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

num = [1, 2, 3]

print num

num.append(4)

print num

num.append([5, 6]) #对append方法而言,这是一个元素而不是两个元素(也即一个对象)

print num

 

 

 

2.count count方法统计某个元素在列表中出现的次数,返回值为统计次数。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

str =list("This is a string")

print str.count("t")

print str.count("i")

print " "

num = [1, 2, 2, 3, 4, 5, 6, 6, 6]

print num.count(2)

print num.count(6)

 

 

 

3.extend extend方法可以用一个列表去扩展原有的列表,与连接操作(“+”)不同的是,extend方法修改了被扩展的序列且没有返回值,而连接操作会返回一个新列表。用分片赋值操作也可以实现相同的结果。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

num1 = [1, 2, 3]

num2 = [4, 5]

print num1

print num2

num1.extend(num2) #对象为被扩展序列,方法接受的参数为扩展序列

print num1

print num2

 

 

 

4.index index方法用于从列表中找出指定值的第一个匹配项的位置并返回其索引值。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

tmp = list("Hello")

print tmp

print tmp.index("l")

 

 

 

5.insert insert方法将一个对象插入到列表中,该方法接受的第一个参数为插入位置(索引),第二个参数为对象。insert方法一次只能插入一个元素。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

num1 = [1, 2, 3]

num2 = [4, 5]

print num1

print num2

num1.insert(1, num2)

print num1

num2.insert(0, 33)

print num2

 

 

6.pop pop方法用于移除列表中的一个元素(默认是最后一个,也可以指定删除某一元素),并且返回该元素的值。使用pop方法和append方法可以实现栈操作,而队列操作可以用pop方法和insert方法来完成。 

 

#!/usr/bin/env python

#coding:utf-8

 

num = [1, 2, 3, 4, 5]

print num

print num.pop()

print num

print num.pop(1) #指定删除

print num

 

 

 

7.remove remove方法用于移除列表中指定值的第一个匹配项,remove方法没有返回值。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

tmp = list("Hello")

print tmp

tmp.remove("l")

print tmp

 

 

 

8.reverse reverse方法将列表倒序存放(直接修改列表),没有返回值。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

num = [1, 2, 3, 4, 5, 6]

print num

num.reverse()

print num

 

 

 

9.sort sort方法用于对列表进行排序(直接修改原列表),如果想要保留原列表就需要自行创建副本。sort方法的排序算法是固定的,而且默认升序。 

 

 

#!/usr/bin/env python

#coding:utf-8

 

num1 = [33, 8, 24, 1, 5, 0, 9]

num2 = [101, 24, 135, 6, 1024]

print "num1: ", num1

num1.sort()

print "排序后:", num1

tmp = num2 #自行创建副本

tmp.sort()

print "num2: ", num2

print "tmp: ", tmp

 

 

 

如果希望元素能够按照特定方式排序,那么可以通过compare(x, y)的形式自定义比较函数。此外,sort方法还有另外两个可选参数key和reverse。关于sort方法的高级应用写在另一篇博文中。

 

元组(Tuple) 

元组也是序列的一种,但与列表不同的是,元组不能修改(元组与列表在技术实现上不同)。元组由圆括号括起元组元素,元素之间用逗号分隔。还可以用tuple函数将一个序列转化为元组。 

 

#!/usr/bin/env python

#coding:utf-8

 

tmp1 = (1, 2, 3)

print tmp1

tmp2 = tuple("python")

print tmp2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

onActivityResult()后onresume()

当你调用完一个存在的activity之后,onActivityResult将会返回以下数据:你调用时发出的requestCode、被调用activity的结果标志resultCode(如RESULT_OK)和其他的额外数据。我们期望的都是得到RESULT_OK,表示调用成功&am…

java反射用法示例_Java包| 类型,用法,示例

java反射用法示例配套 (Packages) Packages in Java is simply a mechanism to encapsulate (i.e. to put in a short and concise form) a group of classes,interfaces,enumerations, sub packages, etc. In real world, application is developed in such a manner so that …

[转载] python 元组tuple - python基础入门(14)

参考链接: Python元组Tuple 目录 一.元组tuple定义 二.元组tuple查询 三.元组tuple不支持删除/修改数据 四.元组tuple与列表list的相互转换 五.重点总结 在上一篇文章中我们讲解了关于python列表List的相关内容,今天给大家解释一下列表List的…

MaxCompute 2.0—从ODPS到MaxCompute

从ODPS到MaxCompute-阿里大数据的进化之路是一个商用大数据系统发展史,一个商业大数据系统要解决的问题有可靠性,高性能,安全性等等六个方面。内部产品名ODPS的MaxCompute,是阿里巴巴内部发展的一个高效能、低成本,完全…

python数值类型_Python数值类型

python数值类型In programming, Data Types are an essential concept. Data of various types can be stored in variables as per the task we want the variables to perform. 在编程中,数据类型是必不可少的概念。 根据我们希望变量执行的任务,各种类…

[转载] Python高级变量(列表、元组、字典、字符串、公共方法)

参考链接: Python | 重点数据类型 (字符串,列表,元组,迭代)(String, List, Tuple, Iteration) 文章目录 高级变量类型目标知识点回顾 01. 列表1.1 列表的定义1.2 列表常用操作del 关键字(科普)关键字、函数…

python 操作mongodb数据库参考文档

参考文档链接:https://pypi.python.org/pypi/pymongo pymongo的参考文档http://api.mongodb.com/python/current/tutorial.html mongoengine的参考文档:https://pypi.python.org/pypi/mongoengine#downloads Flask-MongoEngine的参考文档:htt…

php eot eod_EOD的完整形式是什么?

php eot eodEOD:一天结束 (EOD: End Of Day) EOD is an abbreviation of "End Of Day". EOD是“ End Of Day”的缩写 。 It is an expression, which is commonly used in the Gmail platform. In a particular mail, if the sender wants to give the d…

[转载] python元组 tuple

参考链接: Python元组Tuple 类型特点:可以存放多个、 可以重复的,有顺序的数据,数据不可变。 如果项目中需要定义多个数据到一个变量中存放 存放的数据,在项目运行过程中,会发生数据的增加、修改、删除…

aio nio aio_AIO的完整形式是什么?

aio nio aioAIO:多合一 (AIO: All-in-one) AIO is an abbreviation of "all-in-one", which is also known as an MFP (multi-function product/printer/peripheral), multi-functional or multi-function device (MFD). It is a workplace machine that …

[转载] python基础入门二

参考链接: Python集合Set 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分) name ” aleX” 1)移除 name 变量对应的值两边的空格,并输出处理结果 2) 判断 name 变量对应的值是否以 “al” 开头,并输出结果
…

组合数据类型练习,英文词频统计实例上

1、字典实例:建立学生学号成绩字典,做增删改查遍历操作。 建立: d{0001:99,0003:89,0004:98,0005:100,0006:78} 增:d[0002]79 删:d.pop(0001) 改:d[0004]100 查:print(d[0002]) 遍历操作&#x…

茱莉亚分形_茱莉亚的NaN Constant

茱莉亚分形Julia| NaN / Nan64常数 (Julia | NaN/Nan64 Constant) Nan / Nan64 is a constant of the Float64 type in Julia programming language, it represents "not-a-number" value. Nan / Nan64是Julia编程语言中Float64类型的常量,它表示“非数字…

[转载] Python3 数组

参考链接: Python中的Array | 数组1(简介和功能) 一、list和array的区别 Python的数组通过Numpy包的array实现。 Python里二者最大的区别是,list可以存储不同类型的数据,而array只能存储相同类型的数据。 import numpy #直接定义 a […

201671010128 2017-09-24《Java程序设计》之继承

1.继承的概念及理解: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法&#xff…

紫外线的形式是什么?

紫外线:紫外线 (UV: Ultraviolet) UV is an abbreviation of Ultraviolet. In RO water purifiers, the bacteria or germs which are present in the water cannot get killed by reverse osmosis process but this process can banish the dissolved solids and i…

[js高手之路] html5 canvas系列教程 - 掌握画直线图形的常用API

我们接着上文[js高手之路] html5 canvas系列教程 - 认识canvas以及基本使用方法继续. 一、直线的绘制 cxt.moveTo( x1, y1 ): 将画笔移动到x1, y1这个点 cxt.lineTo( x2, y2 ):将画笔从起点开始画直线,一直画到终点坐标( x2, y2 ) cxt.stroke…

金矿问题

Description: 描述: This is a standard interview problem featured in interview coding rounds of Amazon, Flipkart. 这是亚马逊Flipkart的采访编码回合中的标准采访问题。 Problem statement: 问题陈述: Given a gold mine of n*m dimensions, e…

[转载] python中的数组类型及特点

参考链接: Python中的Array | 数组2(简介和功能) 名称 表示方法示例 是否有序 函数方法(增删等) 特点 List 类型表示:L L [Adam, 95.5, Lisa, 85] 有序 增加:(1)L.append(Paul),增加…

puppet

Puppet前期环境(网络、解析、yum源、NTP)在上一章节已经准备就绪,接下来我们就开始安装Puppet了,安装Puppet其实很简单,官方已经提供了yum源,只需要自己将所需要的安装包下载下来然后做成本地yum源即可使用…