# 第二章:列表和元组
 
序列中,每个元素都有个一个序号,序号以0开始,最后一个元素序号为-1,倒数第二个-2
序列类型包括,列表,元组,字符串,unicode字符串,buffer, xrange
列表可以修改,元组不可以修改,元组可以作为字典的key,列表不可以
 
列表中的元素可以是各种类型,各元素通过逗号分隔,写在方括号中
>>> edward=["edward", 42]
>>> print edward
['edward', 42]
>>>
>>> print edward[0]
edward
>>> print edward[1]
42
>>> print edward[2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> print edward[-1]
42
>>> print edward[-2]
edward
>>> print edward[-3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
 
使用索引访问序列中的一个元素
 
使用分片访问一定范围内的元素,通过冒号分隔的两个索引来获取分片[begin,end],内容包含begin到end之间的元素,不包含end所在位置的元素,
如果end大于最大的索引号,则返回包含最末尾的元素为止
如果end小于begin,返回空分片
如果end缺失,则返回begin之后剩余所有的元素,包含begin位置
如果begin缺失,则返回end之前的所有的元素
如果begin,end都缺失,返回所有元素
 
>>> numbers=[1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6]
[4, 5, 6]
>>>
>>> numbers[7:12]
[8, 9, 10]
>>> numbers[7:4]
[]
>>> numbers[7:]
[8, 9, 10]
>>> numbers[:3]
[1, 2, 3]
 
>>> numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
 
分片的步长[being:end:step],step表示遍历元素使用的步长,即每隔step个元素,step默认为1,
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
step不可以为0,可以为负,表示从右到左提取元素
>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
>>>
 
序列相加:使用加号,相同类型的序列才可以相加
>>> c=[1,2,3]
>>> d=["a", "b", "c"]
>>> c+d
[1, 2, 3, 'a', 'b', 'c']
>>> e="helloworld"
>>> c+e
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list
>>>
 
 
序列乘法:数字x可以序列,表示原来的序列重复x次
>>> "python"*3
'pythonpythonpython'
>>>
 
None:表示空值,但是占有一个元素的位置
>>> []
[]
>>> [None]
[None]
>>>
 
查找:in
>>> 1 in numbers
True
>>> 122 in numbers
False
>>>
 
长度:最小最大值
>>> len(numbers)
10
>>> max(numbers)
10
>>> min(numbers)
1
>>>
 
list:将字符串转为序列
>>> list("helloworld")
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd’]
 
 
修改一元素
>>> l[4:]=list("cn")
>>> l
['h', 'E', 'l', 'l', 'c', 'n']
>>>
 
删除元素:del
>>> del l[1]
>>> l
['h', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>>
 
修改多个元素
>>> l[4:]=list("cn")
>>> l
['h', 'l', 'l', 'o', 'c', 'n']
>>>
 
插入元素
>>> l
['h', 'l', 'l', 'o', 'c', 'n']
>>> l[1:1]="e"
>>> l
['h', 'e', 'l', 'l', 'o', 'c', 'n']
>>>
>>> l[5:5]=", world"
>>> l
['h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', 'c', 'n']
>>>
 
删除多个元素
>>> l[-2:]=[]
>>> l
['h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd']
>>>
 
>>> del l[-5:]
>>> l
['h', 'e', 'l', 'l', 'o', ',', ' ']
>>>
 
 
列表的常用方法
 
apend:追加新元素
>>> lst
[1, 2, 3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
 
 
count:统计元素出现的次数
>>> lst.count(3)
1
>>>
 
extend:追加一个列表
>>> lst
[1, 2, 3, 4]
>>> a
[5, 6, 7]
>>> lst.extend(a)
>>> lst
[1, 2, 3, 4, 5, 6, 7]
 
index:查找第一个次出现的位置
>>> lst.index(3)
2
 
insert:插入元素
pop:移除一个元素(默认是最后一个),并且返回该元素的值
>>> lst.pop()
7
 
remove:移除第一个匹配元素,改变列表,无返回值
>>> lst.remove(2)
>>> lst
[1, 3, 4, 5, 6]
>>>
 
reverse:反转列表,改变列表,无返回值
>>> lst.reverse()
>>> lst
[6, 5, 4, 3, 1]
>>>
 
sort:排序,改变列表,无返回值
>>> lst.sort()
>>> lst
[1, 3, 4, 5, 6]
>>>
sort(key=cmp,reverse=False)的参数:key比较函数,reverse反向排序
 
 
—————————————————————
## 元组:不可改变的序列
以逗号分隔的包含在圆括号内的值,称为元组,圆括号可以省略
>>> a=1,2,3,4,
>>> a
(1, 2, 3, 4)
>>>
 
包含一个元素的元组,需要在元素后添加逗号
>>> a=1,
>>> a
(1,)
>>> a=(1,)
>>> a
(1,)
 
>>> 3*(40+2,)
(42, 42, 42)
>>>
 
tuple:将列转为元组
>>> l
[1, 2, 3, 4]
>>> tuple(l)
(1, 2, 3, 4)
>>>
 

【python学习笔记】2.列表和元组的更多相关文章

  1. python学习笔记之列表与元组

    一.概述 python包含6种内建的序列,其中列表和元组是最常用的两种类型.列表和元组的主要区别在于,列表可以修改,元组则不能修改 使用上,如果要根据要求来添加元素,应当使用列表:而由于要求序列不可修 ...

  2. Python学习笔记_week2_列表、元组、字典、字符串、文件、i编码

    一. 列表.元组 names=["A","B","C","D"] print(names) print(names[0] ...

  3. python学习笔记(2)--列表、元组、字符串、字典、集合、文件、字符编码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表和元组的操作 列表是我们以后最长用的数据类型之一,通过列表可以最方便的对数据实现最方便的存储.修改等操作 定 ...

  4. python学习笔记(列表、元组、购物车实例)

    一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...

  5. Python学习笔记只列表和元组

    一.成员资格 1.检查某个字符是否在某个字符串中:'a' in 'absent' 2.获取数组的长度.最大.最小值: numbers=[100,54,345] len(numbers) //长度 ma ...

  6. python学习笔记整理——列表

    Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...

  7. python学习笔记02--列表和元组

    一.简介 数据结构是通过某种方式组织在一起的数据元素的集合. 序列是python中最基本的数据结构,python中包含6种内建的序列,分别是列表.元组.字符串.Unicode字符串.buffer对象和 ...

  8. python学习笔记(一)元组tuple

    元组由简单的对象组构成,元组与列表相似,但是元组不能在原处修改.元组位置有序的对象集合,元组通过偏移来访问. 为什么有了列表还要元组?元组的不变性提供了某种完整性,可以确保元组在程序中不被另一个引用修 ...

  9. Python学习笔记(六)—元组的操作

    元祖也是一个列表,它和list的区别是元祖里面的元素无法修改: 如果元祖里面只有一个元素的话,那么你必须在这个元素后边加上逗号,这样才是元祖的类型:否则类型会显示其他类型 元组的定义: 元祖中的方法: ...

  10. python学习笔记-列表和字典

    由于最近在看深度学习的代码,看到需要建立字典和列表来存储什么东西的时候,就想要去把字典和列表好好的了解清楚,其应用范围,差别,等等东西 首先我们来介绍,在python中存在如下的数据结构:列表list ...

随机推荐

  1. Flask從入門到入土(五)——Flask与数据库

    import sqlite3 def init_db(): sql = 'create table user(id INT,name TEXT)' conn = sqlite3.connect(&qu ...

  2. wpf 如何让控件左右移动

    通过DoubleAnimation可以让控件进行左右移动. <Canvas x:Name="canvas_Shape" HorizontalAlignment="S ...

  3. UESTC 251 最长上升子序列O(nlgn)

    O(n^2)过不了.必须要用一个额外的数组保存当前长度最小值,然后lgn查表 AC代码 #include<cstdio> #include<algorithm> using n ...

  4. ACM==迷茫

    写给迷茫的自己~~ 从家里来学校一周多了,没做几个题,也没学习新的算法,就这样迷茫地无所事事.有时我就在想我是不是真的喜欢算法?曾经自己定下的竞赛目标要置之不理吗? 我高中毕业于一个普通高中,在上大学 ...

  5. 内置函数 -- bytes -- 字节码与字符串相互转换

    说明: 1. 返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内,是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改. 2. 当3个参数都不传的时候,返 ...

  6. 讯飞语音JavaWeb语音合成解决方案

    在线语音合成 将文字信息转化为声音信息,给应用配上"嘴巴".我们提供了众多极具特色的发音人(音库)供您选择.其合成音在音色.自然度等方面的表现均接近甚至超过了人声.这种语音合成体验 ...

  7. Android中Java和JavaScript交互

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

  8. Eclipse部署Java Web项目到Tomcat出错

    1.今天,我打开Eclipse,准备将一个Java Web项目部署到Tomcat中, 结果弹出提示错误窗口,具体如下: (1)出错详情 Could not publish server configu ...

  9. HTML5之contenteditable属性

    HTML5之contenteditable属性 1.功能说明 (1)功能:允许用户编辑元素中的内容 (2)说明:是一个布尔值,false是不能编辑,true为可编辑 2.分析实例 (1)content ...

  10. VS2005、vs2008+WinXPDDK+DDKWizard配置驱动开发环境

    所需软件下载地址如下(均为有效资源链接,速度都比较可以): vs2005:    http://221.224.22.210/downloadsawyer/VS.Net2005简体中文版.rar wi ...