Python 元组、列表
Python中,最常用的数据结构就是序列了。序列有以下几种:元组,列表,字符串等。注:代码都是在IDE中编辑的,没有用交互式环境。
一、元组(tuple)
元组其实有点类似C++中的数组,即一旦指定了内容,那么这个元组就固定下来不能变了。不过并不是绝对不能改变,如果一个元组成员是一个列表,那么这个列表的修改操作是允许的。另外,Python是动态语言,因此元组中各个成员并不需要是同一种类型:
a = (1, 3, 5, [7, 9])
# a[1] = 11 错误,不允许修改元组的成员
a[3].append(11)# 正确
print a
(1, 3, 5, [7, 9, 11])
大部分时候,列表可以代替元组,不过,元组可以作为字典中的key,而列表不可以;另外,元组是许多内建函数的返回类型
二、列表(list)
列表与元组非常相似,他们支持的操作也有很多相似的地方,具体功能我们在一部分再介绍。列表用[ ]来表示,不同之处在于,列表可以随意修改元素以及添加元素:
a = [1, 3, 5, [7, 9]]
a[1] = 111
a[3].append(11)
print a [1, 111, 5, [7, 9, 11]]
三、序列支持的操作
1、索引
类似于C++中的数组和std::list<T>,序列都是线性结构,支持使用下标来进行索引:
a = [1, 3, 5]
b = (2, 4 ,6)
c = 'this is a string'
print a[1], b[1], c[1], c[-1] 3 4 h g
同其他语言一样,下标是从0开始计的,即第一个元素的索引为0。此外,索引可以为负数,即从右侧开始计算。
2、分片
分片操作支持每次访问一定区间的元素,以及指定访问的步长:
a = [1, 3, 5, 7, 9]
b = (2, 4, 6, 8, 10)
print a[1:3], b[0:4:2] #注意,左闭右开区间
同样,分片操作也可以是负数,不过要注意步长是否匹配。
3、加法和乘法
加法会连接两个类型相同的序列(不能是元组),乘法会赋值N次该序列,并返回一个新的序列:
a = [1, 3, 5, 7, 9]
b = [2, 4, 6, 8, 10]
print a + b, '\n', a * 2 [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
[1, 3, 5, 7, 9, 1, 3, 5, 7, 9]
4、长度、最大最小值
len()函数返回元素的个数,max()和min()函数返回。对于长度,他们都调用类内定义的__len__方法。
四、列表支持的操作
简单点说,列表主要支持的就是添加/删除元素,以及索引、统计、排序等操作:
a = [1, 3, 11, 13, 9, 7, 5]
b = [22, 44]
a.append(111) # a = [1, 3, 11, 13, 9, 7, 5, 111]
a.count(1) #
a.extend(b) # a = [1, 3, 11, 13, 9, 7, 5, 111, 22, 44]
a.index(3) #
a.insert(1, 666) # a = [1, 666, 3, 11, 13, 9, 7, 5, 111, 22, 44]
a.pop() # a = [1, 666, 3, 11, 13, 9, 7, 5, 111, 22]
a.remove(5) # a = [1, 666, 3, 11, 13, 9, 7, 111, 22]
a.reverse()# a = [22, 111, 7, 9, 13, 11, 3, 666, 1]
a.sort() # a = [1, 3, 7, 9, 11, 13, 22, 111, 666]
Python 元组、列表的更多相关文章
- python元组 列表 (取值、替换、插入、添加、删除)
1.元组 列表 字典 元组( 元组是不可变的) hello = (1,2,3,4,5) type(hello)
- python 元组 列表 字典
type()查看类型 //取整除 **幂 成员运算符: in x在y序列中,就返回true 反之 not in 身份运算符: is is not 逻辑运算符 and or not 字符编码 问题 ...
- python 元组列表合并
#create a tuple l = [(,), (,), (,)] print(list(zip(*l)))
- python 元组列表转为字典
#create a list l = [(), (), (), (), (), ()] d = {} for a, b in l: d.setdefault(a, []).append(b) prin ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- Python基础------列表,元组的调用方法
Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...
- Python中列表、元组、集合、字典
Python 列表(List) 列表是最常用的Python数据类型: 列表中的数据项不需要具有相同的类型: 列表也叫做数组,定义时使用[]: 通过下标访问列表中的元素,下标从 0 开始计数 列表的增 ...
- python 元组不变 列表可变
python 元组不变 列表可变 1, --元组,注意要有逗号: [1] --列表 竟然才开始写python blog:
- Python基础——列表、元组操作
列表.元组操作 列表: 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0 ...
- Python 元组和列表
Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 ...
随机推荐
- [USACO13NOV]空荡荡的摊位Empty Stalls
题目描述 Farmer John's new barn consists of a huge circle of N stalls (2 <= N <= 3,000,000), numbe ...
- poj1459多源多汇最大流问题
/*基本构图题,多源多汇,添加一个源点和一个汇点,所有源点都来自这个源点,同理,所有汇点 都汇于这个汇点,dinic第二战,本来应该1A的,犯了一个低级错误!while(scanf("%d) ...
- A. Link/Cut Tree--cf614A ()
这个题卡精度了 刚开始是2的57次方都已经有误差了 不知道怎么弄 后来加个求余就好了 #include<stdio.h> #include<math.h> #include ...
- ATcoder 1983 BBQ Hard
E - BBQ Hard Time limit : 2sec / Memory limit : 256MB Score : 1400 points Problem Statement Snuke is ...
- Java面试题,深入理解final关键字
final关键字 final的简介 final可以修饰变量,方法和类,用于表示所修饰的内容一旦赋值之后就不会再被改变,比如String类就是一个final类型的类. final的具体使用场景 fina ...
- 黑黛增发罗林川:如何三年开1000家连锁店?_深度案例_i黑马
黑黛增发罗林川:如何三年开1000家连锁店?_深度案例_i黑马 黑黛增发
- Thinking in Java -- 类型信息RTTI
Thinking in Java – 类型信息 个人感觉 java 中的比較难的部分了,在看了些netty源代码发现事实上这块很实用. 这章重点是RTTI和反射.先说下自己的理解 RTTI是执行时识别 ...
- sizeof、strlen
一.sizeof sizeof(...)是运算符,sizeof操作符的结果类型是size_t.它在头文件里typedef为unsigned int类型.是以字节为单位进行计数的.所以位域成员不 能用s ...
- easyUI的tree
前端使用easyUI,放了一个tree,搞死了. easyUI的tree,后端传过来的数据,是json格式:然后easyUI向后端提交.请求时,会自动将节点的id附在url后面. 主要有两个注意的地方 ...
- ExtJs里表格自动显隐滚动条
ExtJs里面,layout:'border'这种布局应该很常用,但我用的时候,因为不熟,走了一些弯路.比如说,一个页面,大体布局是这样的: 上:查询输入框 中+下:查询结果(表格,底部有分页控件) ...