在python中,最基本的数据结构是序列。序列中的每个元素被分配一个序号--即元素的位置,也称为索引。第一个索引是0。

python包含6种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。典型的序列包括列表,字符串和元组。其中列表是可变的,元组和字符串时不可变的。

一、序列

通用序列操作
操作 例子 说明
索引

例子1:

>>> tmp = 'hello'

>>> tmp[0]

'h'

例子2:

>>> 'jump'[2]

'm'

x[n]

可以通过索引获取序列中的元素。

左边位置编号从0开始;右边位置编号从-1开始。

分片

例子1:

>>> num=[1,2,3,4,5,6,7,8]

>>> num[1:3]

[2, 3]

例子2:

>>> num[::2]

[1, 3, 5, 7]

 

[索引1:索引2:步长]

分片操作访问一定范围内的元素。提供两个索引作为边界,第一个索引的元素包含在分片内,第二个则不包含。

1)置空分片中的最后一个索引[3:],就能包含结尾元素。

2)置空分片中的第一个索引[:3]就能包含开始元素。

3)都置空,就能获取整个序列[:]

4)分片的第三个参数就是步长,默认1,不能为0,负数表示从右开始提取。

分片中最左边的索引比最右边的索引晚出现在序列中,就会返回空序列。

相加

例子1:

>>> [1,2]+[2,3]

[1, 2, 2, 3]

例子2:

>>> 'mm'+' hh'

'mm hh'

例子3:

>>> [1,2] + 'hh'

Traceback (most recent call last):

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

TypeError: can only concatenate list (not "str") to list

+

将两种相同类型的序列连接

乘法

例子1:

>>> 3*[1,2]

[1, 2, 1, 2, 1, 2]

例子2:

>>> 3*'abc'

'abcabcabc'

序列*num

新的序列,原来的序列被重复num次数

成员资格

>>> 'h' in 'hello'

True

in运算符会检查一个对象是否为某个序列的成员,条件为真返回True,条件为假返回False
长度

>>> len([1,2,3])

3

>>> len('hello')

5

len函数返回序列中所包含的元素的数量
最大元素

>>> max([33,32,90])

90

max函数返回序列中最大的元素

最小元素

>>> min([33,32,90])

32

min函数返回序列中最小的元素
创建列表

>>> list('hello')

['h', 'e', 'l', 'l', 'o']

list()

根据序列创建列表

二、列表

创建列表用'[]'括起来。

None是一个Python的内建值,表示什么也没有,可以用来初始化空列表[None,None]。

列表可以使用所有适用于序列的标准操作,例如上表列出来的操作。列表也有一些特有的操作。

列表操作
操作 例子 说明
元素赋值

>>> m = [1,2,3]

>>> m[2] = 99

>>> m

[1, 2, 99

使用索引为某个特定的、位置明确的存在的元素赋值
删除元素

>>> m = ['abc',1,45]

>>> del(m[1])

>>> m

['abc', 45]

>>>

del()

删除列表中的元素

分片赋值

例子1:

>>> name = [1,2,3,4]

>>> name[1:] = [66,66,66]

>>> name

[1, 66, 66, 66]

例子2:

>>> name = [1,2]

>>> name[1:] = [33,33,33,33]

>>> name

[1, 33, 33, 33, 33]

例子3:

>>> name = [1,2]

>>> name[1:1] = [22,22]

>>> name

[1, 22, 22, 2

例子4:

>>> name = [1,2,3,4,5,6]

>>> name[1:4] = []

>>> name

[1, 5, 6]

x[n:m] = [...]

1.可以一次为多个元素赋值

2.可以使用与原序列不等长的序列将分片替换

3.可以不替换原有元素的情况下插入新的元素

4.可以实现删除元素

方法是一个与某些对象有密切联系的函数。调用:对象.方法(参数)

列表方法
方法 例子 说明
append

>>> m = [1,2,3]

>>> m.append([1,2])

>>> m

[1, 2, 3, [1, 2]]

用于在列表末尾追加新的对象。这个方法是直接修改原有列表。
count

>>> [1,2,1,[1,2]].count(1)

2

统计某个元素在列表中出现的次数
extend

>>> m = [1,2]

>>> m.extend([3,4,5])

>>> m

[1, 2, 3, 4, 5]

在列表的末尾一次性追加另外一个序列的多个值。
index

例子1:

>>> [1,2,3,4,5,6,7].index(4)

3

例子2:

>>> [1,2,3,4,5,6,7].index(8)

Traceback (most recent call last):

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

ValueError: 8 is not in list

>>>

从列表中找出某个值第一个匹配项的索引位置。

当找不到时就会返回异常。

insert

>>> num = [1,2,3,4,5]

>>> num.insert(2,'abc')

>>> num

[1, 2, 'abc', 3, 4, 5]

object.insert(索引,元素)

用于将对象插入列表中。但索引超过当前的范围,就会在最后一个位置插入。

pop

>>> num = [1,2,3,4,5,6,7]

>>> num.pop()

7

>>> num

[1, 2, 3, 4, 5, 6]

>>> num.pop(0)

1

>>> num

[2, 3, 4, 5, 6]

object.pop(索引)

移除列表中的一个元素(默认是最后一个),并且返回该元素的值

当索引不存在就会返回异常。

remove

>>> num = [1,2,3,3,4,5]

>>> num.remove(3)

>>> num

[1, 2, 3, 4, 5]

object.remove(元素)

用于一处列表中某个值的第一个匹配项。

找不到就会返回一项

reverse

>>> num = [1,2,3]

>>> num.reverse()

>>> num

[3, 2, 1]

将列表中的元素反向存放
sort

>>> num = [1,6,3]

>>> num.sort()

>>> num

[1, 3, 6]

object.sort()

对列表进行排序,不返回值,是直接改变原有列表的方法。

高级排序  

object.sort(fun())

使元素按照特定方式排序

1.object.sort(cmp),升序排序

2.object.sort(key = xx),为每个元素创建一个键,然后根据键来排序。比如根据字符长度,object.sort(key = len)

3.object.sort(reverse=True/False),取值为True则反向排序。

关于赋值的注意点

x=[1,2,3]

将x的副本赋值给y,需要这么操作,y = x[:]。而不是简单的将y=x。

如果将y=x,那么y和x指向同一个列表,类似c语言里的指针,那么当修改y时(通过列表的方法/操作进行一些操作),就会同时修改x。除非将y重新指向另外一个列表(比如 y = [1,2]),会解除x和y之间的操作。

三、元组

元组就是不可变的序列。

创建元组,用'()'括起来。(1,2,3)

创建一个值的元组,(1,),必须在第一个元素后面加一个','。

元组的基本操作和其它序列一样。

函数 例子 说明
tuple

>>> tuple([1,2,3])

(1, 2, 3)

>>> tuple('abcd')

('a', 'b', 'c', 'd')

>>> tuple((1,2,3))

(1, 2, 3)

以一个序列作为参数将其转化为元组。如果参数就是元组,那么该参数就会原样返回

Python学习--列表和元组的更多相关文章

  1. python学习-列表、元组和字典(三)

    学习笔记中的源码:传送门 3.1 列表和元组 3.2 不同类型变量的初始化: 数值 digital_value = 0 字符串 str_value = "" 或 str_value ...

  2. Python学习---列表,元组,字典

    ### 列表 list = [1,2,3,4,5,6] list.append(7) print(list) ===>>> [1, 2, 3, 4, 5, 6, 7] list[2] ...

  3. python学习——列表和元组

    一.列表 1)列表介绍 列表是Python内置的一种数据类型. >一组有序项目的集合(从第一个成员序号为0开始依次递增排序) >可变的数据类型(可进行增删改查) >列表中可以包含任何 ...

  4. Python学习-列表元组字典操作

    一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...

  5. python之列表,元组,字典。

    在博主学习列表,元组以及字典的时候,经常搞混这三者.因为他们都是用括号表示的.分别是[],(),{}. 列表(list): [1,'abc',1.26,[1,2,3],(1,2,3),{'age:18 ...

  6. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  7. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  8. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  9. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

随机推荐

  1. Java历程-初学篇 Day05选择结构(2)

    一,switch 由于本作者学的是jdk6.0版本,我知道7.0可以使用字符串,但是我就不改了 语法: switch(char类型/int类型){ case 值: //输出 break; ... de ...

  2. zoj3211dream city dp 斜率

    Dream City Time Limit: 1 Second      Memory Limit:32768 KB JAVAMAN is visiting Dream City and he see ...

  3. flex的三个属性:

    (1)flex-grow:指的是相对于其他的子元素的扩展比率:默认值为0:数字 (2)flex-basis:指的是子元素的具体长度:可以为长度(rem,px,em)也可以为百分比: (3)flex-s ...

  4. 从template到DOM(Vue.js源码角度看内部运行机制)

    写在前面 这篇文章算是对最近写的一系列Vue.js源码的文章(https://github.com/answershuto/learnVue)的总结吧,在阅读源码的过程中也确实受益匪浅,希望自己的这些 ...

  5. elasticsearch高级组合查询ava

    /**     * 高级检索(组合条件检索)must相当于sql and操作     * @param modelType 0为模糊查询,1为精确查询     * @param index 索引   ...

  6. win10 uwp 异步进度条

    本文主要讲我设计的几个进度条,还有如何使用异步控制进度条,如何使用动画做进度. 进度条可以参见:http://edi.wang/post/2016/2/25/windows-10-uwp-modal- ...

  7. centos安装openoffice服务

    第一步:yum install openoffice.org-brand openoffice.org-core openoffice.org-java-common xvfb openoffice. ...

  8. Ubuntu系统下的实用软件推荐

    想要在ubuntu下工作? 又担心影响效率? 这些软件可以帮助你解决问题 ! 基本在windows上可以做到的功能, 在linux中也同样能够实现,而且自己寻找解决方案的过程才是最有趣的! 1.gua ...

  9. IDEA-最简单的struts2项目 关于lib项目的默认位置

    文件结构 struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...

  10. Java基础笔记2

    1.   变量的定义 int money; int 变量类型   money 变量名 money=1000;变量的值 2.  自动类型转换 ①类型要兼容  容器 (水杯---竹篮---碗) ②目标类型 ...