序列——列表和元组(二)

1、列表:Python的“苦力”

 1.1 list函数

  >>>list(‘Hello‘)

  [‘H‘,‘e‘,‘l‘,‘l‘,‘o‘]

  注意,list函数适用于所有类型的序列,而不只是字符串。

  提示  可以使用‘‘.join(somelist)将一个由字符组成的列表转换为字符串。

 1.2改变列表:元素赋值

  >>>x=[1,1,1]

  >>>x[1]=2

  >>>x

  [1,2,1]

  注意,不能为一个位置不存在的元素进行赋值。如果列表长度为2,那么不能为索引为100的元素进行赋值。

 1.3删除元素

>>>names=[‘Alice‘,‘Bech‘,‘Cecil‘,‘Dee-Dee‘,‘Earl‘]
>>>del names[2]
>>>names
[‘Alice‘,‘Bech‘,‘Dee-Dee‘,‘Earl‘]

 1.4分片赋值

  程序可以一次为多个元素赋值,可以使用与原序列不等长的序列将分片替换

>>>name=list(‘Perl‘)
>>>name[2:]=list(‘ar‘)
>>>name
[‘P‘,‘e‘,‘a‘,‘r‘]

>>>name[1:]=list(‘ython‘)
>>>name
[‘P‘,‘y‘,‘t‘,‘h‘,‘o‘,‘n‘]
#分片赋值语句可以在不需要替换任何原有元素的情况插入新的元素;
>>>numbers=[1,5]
>>>numbers[1:1]=[2,3,4]
>>>numbers
[1,2,3,4,5]
#以此类推,通过分片赋值删除元素也是可以的
>>>numbers[1:4]=[]
>>>numbers
[1,5]
#上面的例子的结果和del numbers[1:4]的一样。也可以利用1之外的步长,甚至是负数进行分片。

2、列表方法

  方法是一个与某些对象有紧密联系的函数,对象可能是列表、数字,也可能是字符串或者其他类型的对象。一般来说,方法可以这样进行调用:对象.方法(参数)

 2.1 append  该方法用于在列表末尾追新的对象:

>>>lst=[1,2,3]
>>>lst.append(4)
>>>lst
[1,2,3,4]

 2.2 count 该方法统计某个元素在列表中出现的次数

1 >>>[‘to‘,‘be‘,‘or‘,‘not‘,‘to‘,‘be‘].count(‘to‘)
2 2
3 >>>x=[[1,2],1,1,[2,1,[1,2]]]
4 >>>x.count(1)
5 2
6 >>>x.count([1,2])
7 1

 2.3 extend 该方法可以在列表的末尾一次性追加另一个序列中的多个值。换句话说,可以用心列表扩展原有的列表:

 1 >>>a=[1,2,3]
 2 >>>b=[4,5,6]
 3 >>>a.extend(b)
 4 >>>a
 5 [1,2,3,4,5,6]
 6 #这个操作看起来很像连接操作,两者最主要的区别在于:extend方法修改了被扩展的序列a。#而原始的连接操作则不然,它仅仅会返回一个全新的列表:
 7 >>>a=[1,2,3]
 8 >>>b=[4,5,6]
 9 >>>a+b
10 [1,2,3,4,5,6]
11 >>>a
12 [1,2,3]
13 #当然也可以如下操作,但是连接操作的效率会比extend方法低。
14 >>>a=a+b
15 #我们可以使用分片赋值来实现相同的结果:
16 >>>a=[1,2,3]
17 >>>b=[4,5,6]
18 >>>a[len(a):]=b
19 >>>a
20 [1,2,3,4,5,6]
21 #虽然以上操作也可以,但是代码的可读性不如extend方法了

 2.4 index 该方法用于从列表中找出某个值第一个匹配项的索引位置:

>>>knights=[‘we‘,‘are‘,‘the‘,‘knights‘,‘who‘,‘say‘,‘in‘]
>>>knights.index(‘who‘)
4
>>>knights.index(‘herring‘)
valueError: list.index(x):x not in list
#获取不存在于列表中的元素索引会抛错

 2.5 insert 该方法用于将对象插入到列表中:

1 >>>numbers=[1,2,3,5,6,7]
2 >>>numbers.insert(3,‘four‘)
3 >>>numbers
4 [1,2,3,‘four‘,‘5,6,7]
5 #与extend方法一样,insert方法的操作也可以用分片赋值来实现。
6 >>>numbers=[1,2,3,5,6,7]
7 >>>numbers[3:3]=[‘four‘]#不可以写成numbers[3:3]=‘four‘,否则结果变成[1,2,3,‘f‘,‘o‘,‘u‘,‘r‘,5,6,7]8 >>>numbers 9 [1,2,3,‘four‘,5,6,7]

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

1 >>>x=[1,2,3]
2 >>>x.pop()
3 3
4 >>>x
5 [1,2]
6 >>>x.pop(0)
7 1
8 >>>x
9 [2]

  pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。[None,None].pop()就不会返回值。

pop和append方法的操作结果恰好相反,如果入栈刚刚出栈的值,最后得到的结果还是原来的栈:

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

  >>>x.append(x.pop())

  >>>x

  [1,2,3]

时间: 2024-11-09 06:15:55

序列——列表和元组(二)的相关文章

Python语言之数据结构1(序列--列表,元组,字符串)

0.序列 列表,元组,字符串都是序列. 序列有两个特点:索引操作符和切片操作符.索引操作符让我们可以从序列中抓取一个特定项目.切片操作符让我们能够获取序列的一个切片,即一部分序列. 以字符串为例: 1 str="01 3456 89?" 2 3 print( str[0] ) #'0',索引 4 print( str[1:5] ) #'1 34 ',切片 5 print( str[5:1:-1] ) #'543 ' 6 print( str[1:5:-1] ) #output a '\

34 py创建和使用字典 使用dict函数将序列(列表、元组)转换为字典 以及 字典的基本操作

第一课 创建和使用字典 # 创建和使用字典 # 我们以前讲过2种序列:1列表 2元组 # 共同点:都是通过索引引用元素值 # 不同点:列表是可读写的,元组是只读的 names = ["Bill", "Mike", "John", "Mary"] numbers = ["1234", "4321", "6789", "6543"] print(num

序列——列表和元组

Python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象. 1.列表和元组的主要区别在与,列表可以修改,元组则不能. 列表如下例所示: >>> edward=['Edward Gumby',42] >>> database=[['Edward Gumby',42],['Allen',22]] 2.通用序列操作 所有序列类型都可以进行某些特定的操作.这些操作包括:索引(indexing).分片(slicing).加(ad

python序列(列表,元组,字典)的增删改查

列表 操作 列表 方法 示例 增加 list.append(obj) 增加元素到末尾 eg. >>> list1=['hello','world','how','are','you'] >>> list1.append('!') >>> list1 ['hello', 'world', 'how', 'are', 'you', '!'] list.insert(index, obj) 增加元素到指定位置 index:索引位置 obj:内容 eg. &g

python学习笔记之列表与元组

一.概述 python包含6种内建的序列,其中列表和元组是最常用的两种类型.列表和元组的主要区别在于,列表可以修改,元组则不能修改 使用上,如果要根据要求来添加元素,应当使用列表:而由于要求序列不可修改时,此时使用元组更合适 一般来说,几乎可以用列表代替元组 二.通用操作 所有序列类型都可以进行某些特定的操作,包括:索引.切片.加.乘以及检查元素是否属于序列 1.索引 序列中的所有元素同PHP Array一样都有编号,而且这个编号从0开始,可以通过这个编号来访问元素 字符串也是一个由字符组成的序

python基础教程总结1——列表和元组

1.序列 python含有6种内建序列——列表,元组,字符串,Unicode字符串,buffer对象,xrange对象 2.通用序列操作 2.1 索引 注:   input()根据用户输入变换相应的类型,而且如果要输入字符和字符串的时候必须要用引号包起来, raw_input()则是不管用户输入什么类型的都会转变成字符型. 2.2 分片 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (1) numbers[:] [1, 2, 3, 4, 5, 6, 7, 8

python 学习笔记 二 序列, 列表, 元组, 字符串

序列 序类是一个集合概念, Pthon包括六种内建序列: 列表, 元组, 字符串, Unicode字符串, buffer对象和xrange对象. 其中, 我们最长用的要数前三个. 通用序列操作 1. 索引(indexing) 序列的所有元素都是有编号的(从0开始...), 这些元素可以通过编号访问, 如: >>> greeting = 'Hello' >>> greeting[0] 'H' 使用负数索引(从-1开始...)是从右边开始的: >>> gr

Python学习三---序列、列表、元组

一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. 从后向前,最后一个索引是-1,-2,.... python包含6种内建序列.最常用的两种类:列表和元组,其它内奸序列类型有字符串.Unicode字符串.buffer对象和xrange对象. 列表和元组的主要区别在于,列表可以修改,元组不能修改. 添加元素就用列表. 由于 一些原因不能修改时就用元组.

序列(列表、元组、字符串)字典小题

一.已知:元组 a = (1,2,3) 利用list方法,输出下面的结果:(1,2,4) 二. 已知:b = [9,5,36,25,4,1,2] 1.求出列表b的长度,最大值,最小值. 2.取值:取出25 3.切片:输出[5,36,25] 4. 删除:删除列表中25这个数字 5.扩充:将列表c =[7,6,11]扩充到列表b中 6. 排序:对b列表进行从小到大的排序输出,然后再反向使列表从大到小输出 7. 插入:将26插入到列表中, 使得最后输出结果为:b = [36, 26, 11, 9, 7