python的元组和列表使用之一
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的元组和列表使用之一的更多相关文章
- python之元组,列表和字典的区别
Python语言包含6种内建的序列,其中,有两种主要的类型:列表和元组. 列表是可以修改的,而元组不可以,如果要添加或者删除某些元素,就只能用列表,为了限制某些元素,就会用到元组.一般来说,列表可以替 ...
- Python中元组、列表、字典的遍历和相互转化
一.元组,列表,字典的遍历 1.1 元组的遍历 元组的遍历借助 range() 函数,基本思想是通过元组的长度使用for循环进行遍历,代码如下: fruits=("apple&quo ...
- 在python中元组与列表的区别及序列解包
一. 元组与列表的区别 元组中的数据一旦定义就不允许更改. 元组没有append().extend()和insert()等方法,无法向元组中添加元素. 元组没有remove()或pop()方法,也无法 ...
- python中元组、列表、字典、集合知识
像列表一样处理字符串: 仅需要看字符串的首字符就知道如何处理该字符串的情况也很常见.例如,如果有一个姓与名的列表,您可以使用与列表相同的语法查看名与姓的第一个字符.这种看待字符串的方法叫做分片(sli ...
- Python基础-元组、列表、字典
元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...
- Python 求“元组、列表、字典、数组和矩阵”的大小
总结: 首先 import numpy as np A = np.random.randint(1,100,size = (4,5)) >>A>>array([[56, 96, ...
- Python中元组和列表
一.list列表的操作包括以下函数: 列表操作包括以下函数: 1.cmp(list1,list2) :比较两个列表的元素 2.len(list) :列表元素个数 3.max(list) :返回列表元素 ...
- Python之元组、列表and 字典
序列: 元组和字符串都是不可变的哦 你看,数据空间不一样了 元组的话,你可以联想到C里面的结构体变量啊,为了包容不同的数据类型: 也可以这样取值哦: 列表:列表是可修改的哦~ 不然数据大了再另外开辟空 ...
- Python中元组,列表,字典的区别
http://blog.csdn.net/yasi_xi/article/details/38384047
随机推荐
- SQL Server ->> Msg 7411, Level 16, State 1, Line 1 -- Server 'XXXX' is not configured for RPC.
关于问题,有两个相关的服务器选项. exec sp_serveroption @server='CIA-SH-SVR-SIS', @optname='rpc', @optvalue='true' ex ...
- Excel有用的宏
=Index({"同事","同学","亲戚"},b3) 前面的array默认索引从1开始. 如果b3为1.而枚举数组是: 0=>同事, ...
- git使用(一)
github因为众所周知的一些问题,不方便选为远程仓库,在此,我们选用oschina的远程仓库,首先去http://git.oschina.net/申请一个账号. 第一步,安装git(下载电脑系统对应 ...
- 分布式缓存系统热点key解决方案
1. 读访问量高(万级别及以上),读访问远大于写访问 这种情况典型的业务场景之一就是存储配置信息,配置信息一般数据量较小,更新频率低,但读访问量高.这种场景有两种方法优化: a. 对同一个key存储多 ...
- testNG中@Factory详解
@Factory注解从字面意思上来讲就是采用工厂的方法来创建测试数据并配合完成测试,其主要应对的场景是:对于某一个测试用例或方法,我们需要输入多个测试数据进行测试,并且这些测试数据可以是有一定关系(可 ...
- 矩阵-DirectX与OpenGL的不同
http://www.cnblogs.com/graphics/archive/2012/08/02/2616017.html 矩阵是三维图形学中不可或缺的部分,几乎所有和变换相关的操作都涉及矩阵,世 ...
- 一个简单的ORM制作(CURD操作类)
SQL执行类 CURD操作类 其他酱油类 此篇是为上篇文章填坑的,不知道上篇砸过来的砖头够不够,不够的话请大家继续砸. CURD操作类负责将用户提供的条件转换为SQL语句,并提供给IHelper执行, ...
- UVa 1607 (二分) Gates
这道题真的有点“神”啊.= ̄ω ̄= 因为输入都是x,所以整个电路的功能一共就四种:0, 1, x,!x 所以就确定了这样一个事实:如果电路的输出是常数,那么所有的输入都可以优化成常数. 否则,只需要将 ...
- HDU 2126 (背包方法数) Buy the souvenirs
DP还有很长很长一段路要走.. 题意:给出n纪念品的价格和钱数m,问最多能买多少件纪念品和买这些数量的纪念品的方案数. 首先,求能买最多的纪念品的数量,用贪心法可以解决.将价钱排序,然后从最便宜的开始 ...
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...