Python的列表和元组

1、       概述

列表是用方括号[]包围的数据集合,不同的成员之间用逗号进行分隔,列表可以通过序号来进行访问其中的成员,可以对列表进行排序、添加、删除操作,改变列表中某一成员的值。

元组是以圆括号()包围的数据集合,与列表不同的是,元组中的数据一旦确立就不能进行修改了。

成员是有序排列的,并且可以通过下标偏移量访问到一个或者是几个成员,称之为序列,包括:字符串,列表和元组。

切片操作操作:[start:end:步长],当步长为-1的时候,相当于反转操作。

2、       常用列表操作

Python对列表常用操作如下:

列表操作

描述

List.append(x)

追加成员x

List.count(x)

计算列表中的参数x出现的次数

List.extend(L)

向列表中追加另一个列表L

List.index(x)

获得参数x在列表中的出现的第一个位置

List.insert(index,value)

向列表中index位置插入数据value

List.pop(index)

删除列表中index的成员,默认为最后一个

List.remove(value)

删除列表中的出现的第一个成员value

List.reverse()

将列表中的成员顺序颠倒

List.sort()

将列表中的成员排序

元组的操作只能做切片操作,如上的操作都是不可以做的,因为元组是不可变类型,对于列表,也是可以做切片操作的。

2.1 列表的创建

创建列表数据类型的时候,可以直接创建一个空的或者是直接进行赋值,也可以使用工厂方法来进行创建,如下所示创建列表:

#创建列表并赋值

>>> aList = [123,"abc",4.56,['inner','list'],7-9j]

>>> aList

[123, 'abc', 4.5599999999999996, ['inner', 'list'], (7-9j)]

#创建一个空列表

>>> aListThatStartedEmpty = []

>>> print aListThatStartedEmpty

[]

#使用工厂方法创建列表,在创建的时候,只能有一个参数

>>> list|("foo")

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unsupported operand type(s) for |: 'type' and 'str'

>>> list("foo")

['f', 'o', 'o']

>>> list("kel","abc")

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: list() takes at most 1 argument (2 given)

2.2 访问列表的值

访问列表的值的时候,使用下标来进行访问或者使用切片的方法来访问,如下:

>>> aList

[123, 'abc', 4.5599999999999996, ['inner', 'list'], (7-9j)]

>>> aList[0]

123

>>> aList[:3]

[123, 'abc', 4.5599999999999996]

>>> aList[3][0]

'inner'

2.3 更新列表

更新列表的时候,可以使用append方法或者insert方法,或者直接用下标来进行赋值,如下所示:

>>> aList

[123, 'abc', 4.5599999999999996, ['inner', 'list'], (7-9j)]

>>> aList[3] = "new"

>>> aList

[123, 'abc', 4.5599999999999996, 'new', (7-9j)]

>>> aList.append("lase")

>>> aList

[123, 'abc', 4.5599999999999996, 'new', (7-9j), 'lase']

>>> aList.insert(1,"index 1 value")

>>> aList

[123, 'index 1 value', 'abc', 4.5599999999999996, 'new', (7-9j), 'lase']

2.4 如何删除列表中的元素

删除的时候可以是del或者使用remove()方法,remove是移除第一个碰到的相应的值,如下所示:

>>> aList

['index 1 value', 'abc', 4.5599999999999996, 'new', (7-9j), 'lase']

>>> del aList[0]

>>> aList

['abc', 4.5599999999999996, 'new', (7-9j), 'lase']

>>> del aList[:2]

>>> aList

['new', (7-9j), 'lase']

当删除整个列表的时候,可以是del,并且会删除其他引用:

>>> aList

['new', (7-9j), 'lase']

>>> del aList

>>> aList

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'aList' is not defined

也可以使用pop来进行删除,在使用pop的时候会返回一个特定的对象,如下所示:

>>> aList

['abc', 'kel']

>>> aList.pop()

'kel'

>>> aList.pop(0)

'abc'

>>> aList

[]

2.5 列表解析

列表解析主要是使用列表和for循环的方式,如下所示:

>>> [i*2 for i in [1,2,3] if i%2 == 1]

[2, 6]

>>> [i*2 for i in range(9) if i%2 == 0]

[0, 4, 8, 12, 16]

2.6 可改变对象的方法没有返回值

那些可以改变对象值的可变对象值的可变对象的方法是没有返回值的。

在使用可变对象的方法如sort(),extend()和reverse()的时候要注意,这些操作会在列表中原地执行操作,也就是说现有的列表内容会被改变,但是是没有返回值的。

3、       序列类型函数

Reversed(list)--对list进行反转操作

Sorted(list)--对list进行排序操作

Zip(seq1,seq2)--[(seq1[0],seq2[0]),(seq1[1],seq2[1])]

List(),tuple()列表和元祖进行相互转化

python的元组和列表使用之一的更多相关文章

  1. python之元组,列表和字典的区别

    Python语言包含6种内建的序列,其中,有两种主要的类型:列表和元组. 列表是可以修改的,而元组不可以,如果要添加或者删除某些元素,就只能用列表,为了限制某些元素,就会用到元组.一般来说,列表可以替 ...

  2. Python中元组、列表、字典的遍历和相互转化

    一.元组,列表,字典的遍历 1.1 元组的遍历 元组的遍历借助 range() 函数,基本思想是通过元组的长度使用for循环进行遍历,代码如下:     fruits=("apple&quo ...

  3. 在python中元组与列表的区别及序列解包

    一. 元组与列表的区别 元组中的数据一旦定义就不允许更改. 元组没有append().extend()和insert()等方法,无法向元组中添加元素. 元组没有remove()或pop()方法,也无法 ...

  4. python中元组、列表、字典、集合知识

    像列表一样处理字符串: 仅需要看字符串的首字符就知道如何处理该字符串的情况也很常见.例如,如果有一个姓与名的列表,您可以使用与列表相同的语法查看名与姓的第一个字符.这种看待字符串的方法叫做分片(sli ...

  5. Python基础-元组、列表、字典

    元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...

  6. Python 求“元组、列表、字典、数组和矩阵”的大小

    总结: 首先 import numpy as np A = np.random.randint(1,100,size = (4,5)) >>A>>array([[56, 96, ...

  7. Python中元组和列表

    一.list列表的操作包括以下函数: 列表操作包括以下函数: 1.cmp(list1,list2) :比较两个列表的元素 2.len(list) :列表元素个数 3.max(list) :返回列表元素 ...

  8. Python之元组、列表and 字典

    序列: 元组和字符串都是不可变的哦 你看,数据空间不一样了 元组的话,你可以联想到C里面的结构体变量啊,为了包容不同的数据类型: 也可以这样取值哦: 列表:列表是可修改的哦~ 不然数据大了再另外开辟空 ...

  9. Python中元组,列表,字典的区别

    http://blog.csdn.net/yasi_xi/article/details/38384047

随机推荐

  1. Linux命令-wc

    wc命令用于统计指定文本的行数.字数.字节数 格式:wc [参数] 文本 [root@localhost test]# wc test.txt test.txt [root@localhost tes ...

  2. dojo 一 require 路径问题

    dojo.baseUrl baseUrl用来存储dojo.js存放 的跟目录,例如dojo.js的路径是“/web/scripts/dojo-1.3/dojo/dojo.js”则baseUrl为“/w ...

  3. Charles是Mac的Fiddler抓包工具

    windows下面我们经常使用 Fiddler 抓包工具进行代理等一系列操作.然而,在 Mac 下的 Fiddler 勉强能运行,但是其挫的都不想说它了.今天看到朋友推荐这款 Charles Mac下 ...

  4. Qt之HTTP上传/下载

    简述 在前面章节中我们讲述了关于Qt显示网络图片的内容,比较简单,因为图片一般都比较小,下载到本地速度比较快,所以基本不需要什么特殊处理,本节我们主要针对HTTP实现上传/下载进行详细的讲解与分享,包 ...

  5. LA 4794 Sharing Chocolate

    大白书中的题感觉一般都比较难,能理解书上代码就已经很不错了 按照经验,一般数据较小的题目,都有可能是用状态压缩来解决的 题意:问一个面积为x×y的巧克力,能否切若干刀,将其切成n块面积为A1,A2,, ...

  6. 基于Flume的美团日志收集系统(一)架构和设计

    美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...

  7. [转载] mysql5.6 删除之前的ibdata1文件后再重新生成,遇到[Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.问题

    [转载] mysql5.6 删除之前的ibdata1文件后再重新生成,遇到[Warning] Info table is not ready to be used. Table 'mysql.slav ...

  8. mac 安装使用 webp 来压缩图片

    学习性网站: https://developers.google.com/speed/webp/docs/cwebp http://www.w3ctech.com//topic/1672 https: ...

  9. matlab中meshgrid函数的用法

    meshgrid用于从数组a和b产生网格.生成的网格矩阵A和B大小是相同的.它也可以是更高维的.这里的大小指的是,size()函数的大小,size()函数返回的是一个向量, 那么size(A) = s ...

  10. python练习程序(c100经典例14)

    题目: 将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. def foo(n): while 1: for i in range(2,n+1): if n%i==0: print ...