python类型-序列-列表
列表类型也是序列式的数据类型,可通过下标或者切片操作来访问某一个或某一块连续的元素。
列表的元素是可变的,可包含不同类型的元素,列表类型的元素可以是另一个序列类型。
1.创建列表类型数据并赋值
列表使用方括号([])定义,alist = [123, 1.2, 'foo', 7-9j, [1, 2]]
>>> list('foo')
['f', 'o', 'o']
2.访问列表中的值
列表的切片操作和字符串一样,切片操作符([])和索引值或索引范围一起使用。
>>> alist = ['abc', 12.3, ['inner', 'list']]
>>> alist[2][1]
'list'
3.更新列表
在等号的左边指定一个索引或者索引范围的方式来更新一个或几个元素,也可以用append()方法来追加元素到列表中去。
>>> alist
['abc', 12.300000000000001, ['inner', 'list']]
>>> alist[2]
['inner', 'list']
>>> alist[2] = 'inner list'
>>> alist
['abc', 12.300000000000001, 'inner list']
4.删除列表中的元素或者列表本身
明确的知道要删除元素的索引可以用del语句,否则可以用remove()方法
>>> alist
['abc', 12.300000000000001, 'inner list']
>>> alist.remove(12.3)
>>> alist
['abc', 'inner list']
>>> del alist
5.列表操作符
== < > !=
比较操作符比较的时候使用的是内建的cmp()函数,基本的逻辑是:两个列表的元素分别进行比较,直到有一方的元素胜出。
>>> list1 = ['abc', 123]
>>> list2 = ['xyz', 789]
>>> list1 < list2
True
>>> list3 = ['abc', 789]
>>> list2 < list3
False
>>> list1 < list3
True
6.列表类型操作符
切片([]和[:]):列表的切片操作返回的是一个对象或者几个对象的集合。
>>> num_list = [45, 2.2, -2, 6.19e5]
>>> str_list = ['he', 'she', 'it']
>>> num_list[2:-1]
[-2]
>>> str_list[:2]
['he', 'she']
由于列表类型的元素可以是另一个序列类型,意味着可以在列表的元素上也可以使用所有的列表操作符或者在其上执行序列类型内建的各种操作。
>>> mix_list = [4.1, [1, -90.1], 'beef', (-1.9+6j)]
>>> mix_list[1][1]
-90.099999999999994
7.成员关系操作符(in, not in)
列表中(同样适用于元组),可以检查一个对象是否是一个列表(或者元组)的成员
>>> mix_list = [4.1, [1, -90.1], 'beef', (-1.9+6j)]
>>> 'beef' in mix_list
True
>>> 'x' in mix_list
False
8.连接操作符(+)
连接操作符允许我们把多个列表对象合并在一起,列表类型的连接操作只能在同类型之间进行,不能把两个不同类型的对象连接在一起,即使他们都是序列类型也不行
>>> list1 = [1, 2, 3]
>>> list2 = ['a', 'b', 'c']
>>> list1 + list2
[1, 2, 3, 'a', 'b', 'c']
9.重复操作符(*)
列表和元组属于序列类型,可使用重复操作符
>>> list1 = [1, 2, 3]
>>> list1*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
10.标准类型函数
cmp():
对两个列表的元素进行比较;
如果比较的元素是同类型的,则比较其值,返回结果;
如果两个元素不是同一个类型,则检查它们是否是数字;
如果是数字,执行必要的数字强制类型转换,然后比较;
如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的");
否则,通过类型名字的字母顺序进行比较;
如果有一个列表首先到达末尾,则另一个长一点的列表"大";
如果我们用尽了两个列表的元素而且所有元素都是相同的,那么结果就是平局,返回一个0。
11.序列类型函数
- len():对字符串来说返回字符串的长度,也就是字符个数;对列表或者元组来说,返回列表或元组的元素个数;容器里面的每个对象被当做一项来处理。
>>> mix_list = [4.1, [1, -90.1], 'beef', (-1.9+6j)]
>>> len(mix_list)
4
- max()和min():对只包含数字或者字符串的列表,该函数比较有用;
>>> lstr = ['abc', 'befc', 'cdef']
>>> max(lstr)
'cdef'
- sorted()和reversed():sorted()默认为升序,reserved()反转;
>>> s = ['They', 'stamp', 'when', 'smail']
>>> sorted(s)
['They', 'smail', 'stamp', 'when']
>>> for i in reversed(s):
... print i
...
smail
when
stamp
They
- enumerate()和zip():enumerate()函数同时循环索引和循环元素;zip()返回一个列表,其第一个元素是it0、it1…这些元素的第一个元素组成的一个元组,第二个。。。依此类推;
>>> s = ['They', 'stamp', 'when', 'smail']
>>> for i, m in enumerate(s):
... print i, m
...
0 They
1 stamp
2 when
3 smail
>>>
- sum():求和
>>> sum([1, 2, 3])
6
- list()和tuple():接受可迭代对象作为参数,通过浅拷贝数据来创建一个新的列表或者元组,更多的情况下用于两种类型之间的类型转换。
>>> alist = [1, 2, 3]
>>> atuple = tuple(alist)
>>> alist, atuple
([1, 2, 3], (1, 2, 3))
附录:列表类型内建函数
|
列表函数 |
作用 |
|
list.append(obj) |
向列表中添加一个对象obj |
|
list.count(obj) |
返回一个对象obj在列表中出现的次数 |
|
list.extend(seq) |
把序列seq的内容添加到列表中 |
|
list.index(obj, i=0, j=len(list)) |
返回list[k]==obj的k值,并且k的范围在i<=k<j,否则引发ValueError异常 |
|
list.insert(index, obj) |
在索引量为index的位置插入对象obj |
|
list.pop(index=-1) |
删除并返回指定位置的对象,默认是最后一个对象 |
|
list.reverse() |
原地翻转列表 |
|
list.sort(func=None, key=None, reverse=False) |
以指定的方式排序列表中的成员,如果func和key参数指定,则按照指定的方式比较各个元素,如果reverse标志被置为True,则列表以反序排列。 sort()默认的排序算法是归并排序(或者说"timsort")的衍生算法 |
>>> al = [1]
>>> al.insert(0, 12)
>>> al.append('b')
>>> al
[12, 1, 'b']
>>> al.index(1)
1
>>> al.sort()
>>> al
[1, 12, 'b']
>>> al.reverse()
>>> al
['b', 12, 1]
python类型-序列-列表的更多相关文章
- python类型-序列-字符串
python中单引号和双引号的含义是一样的.字符串是一种直接量或者说是一种标量,是不可变类型,字符串是由独立的字符组成的,并且这些字符可以通过切片操作顺序的访问. python实际有三类字符串:通常意 ...
- python类型-序列
注:本文档主要是学习<Python核心编程(第二版)>时做的资料整理. 1.序列 序列的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员,包括字符串(普通字符串和Unic ...
- python类型-序列-元组
元组是一种不可变类型,元组可用作一个字典的key. 1.创建一个元组并进行赋值 atuple = (123, 'abc', ('inner', 'tuple'), 7-9j) 2.访问元组中的值 元组 ...
- Python中高级变量类型(列表,元组,字典,字符串,公共方法...)
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
- NO.2:自学python之路------变量类型、列表、字典
引言 本周初步认识了库,并学习了Python中各种类型的变量和常用操作.并完成了较为完善的用户与商家购物界面设计. 正文 模块: Python有标准库和第三方库.第三方库需要安装才能使用.大量的库可以 ...
- Python序列——列表
列表是什么 1 创建列表 2 访问列表和更新列表 列表相关操作 内建函数对列表的支持 1 cmp 2 序列类型函数 列表内建函数 列表应用 1 堆栈 2 队列 1. 列表是什么 列表也是序列的一种.列 ...
- python笔记(1)--序列(列表 元组 range)
一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之列表类型(list)
Python中序列是最基本的数据结构.序列中的每个元素都分配一个数字(他的位置或者索引),第一个索引是0,第二个索引是1,依次类推.Python的列表数据类型类似于C语言中的数组,但是不同之处在于列表 ...
- Python语言之数据结构1(序列--列表,元组,字符串)
0.序列 列表,元组,字符串都是序列. 序列有两个特点:索引操作符和切片操作符.索引操作符让我们可以从序列中抓取一个特定项目.切片操作符让我们能够获取序列的一个切片,即一部分序列. 以字符串为例: 1 ...
随机推荐
- JS(JavaScript)的进一步了解8(更新中···)
元素节点的树状图 document>documentElement>body>tagName offsetLeft/offsetTop 结合运动 滚动轮播 1.DOM 全称:docu ...
- ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(2)
创建公共分页参数类Common/GridPager.cs using System; using System.Collections.Generic; using System.Linq; usin ...
- CP防火墙使用命令批量创建对象和策略
Step1:批量创建网络对象 使用mgmt_cli 命令批量创建host对象,注意该命令需要管理员账号和密码 mgmt_cli add host name Host_10.133.1.100 ip-a ...
- slim的中间件
slim中间件的作用简单来说就是过滤数据,request过来的数据要经过中间件才能到达内部,然后内部数据要到达外部的时候,也要经过中间件,正常通过才能到达外部
- Python 多组输入
#基于Python2.7 #若是想Python做到和C++中while(scanf()!=EOF)一样的多组输入效果,可以如实例所示书写 #实例实现了多组输入,计算A+B+C并输出的任务 while ...
- MindManager使用技巧
任务窗格在右下角. 1.条件的设置与编辑 2.优先级视图 不是优先级图标 3.圆圈图 4.洋葱图的使用 右键选择背景再选择解锁所有背景就可以对所有圆形进行调整了 点图形边缘出现十字架可以进行移动 5 ...
- 【萌新向】cartographer_ros最新安装指南 2019-12
首先说明,这篇文章于2019年12月写下,cartographer现在还在不断更新,也许这篇文档内容会失效,但是大体是一样的安装流程. 一.硬件条件 使用平台 x86_64平台 ROS发行版 Indi ...
- 关于SAM和广义SAM
关于SAM和广义SAM 不是教程 某些思考先记下来 SAM 终于学会了这个东西诶...... 一部分重要性质 确定一个重要事情,S构造出的SAM的一个重要性质是当且仅当对于S的任意一个后缀,可以从1号 ...
- 【一起学源码-微服务】Nexflix Eureka 源码十三:Eureka源码解读完结撒花篇~!
前言 想说的话 [一起学源码-微服务-Netflix Eureka]专栏到这里就已经全部结束了. 实话实说,从最开始Eureka Server和Eureka Client初始化的流程还是一脸闷逼,到现 ...
- 洛谷P1776 宝物筛选 题解 多重背包
题目链接:https://www.luogu.com.cn/problem/P1776 题目大意: 这道题目是一道 多重背包 的模板题. 首先告诉你 n 件物品和背包的容量 V ,然后分别告诉你 n ...