Python-01-列表和元组

列表和元组

列表和元祖是python的基本数据结构。本文首先对序列做一个概览,然后讲解序列的通用操作,然后分别讲解列表和元组。

  • 序列
  • 列表
  • 元组

内建序列

在python中最基本的数据结构是序列,在序列中每个元素被分配一个序号-即元素的位置,也成索引。Python包含6种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。

python之中还有一种名为容器(container)的数据结构。容器基本上是包含其他对象的任意对象。序列(例如列表和元组)和映射(例如字典)是两类主要的容器。序列中每个元素都有自己的编号,而映射中每个元素则有一个名字(也称为键)。

方法:一些内建类型(例如列表和字符串,元组则不在其中)具有很多有用的方法。这些方法有些像函数,不过它们与特定值联系密切。方法是面向对象编程的一个重要的概念。

通用序列操作

所有的序列类型都可以进行这些特定的操作:索引、分片、加、乘、成员资格、长度(最大元素、最小元素等)。

索引

序列中所有元素都是有编号的-从0开始递增,最后一个元素的位置编号是-1(不是-0)。

>>> greeting = 'Hello'
>>> greeting[0]
 'H'

分片

分片操作来访问一定范围内的元素,分片通过冒号隔开的两个索引来实现:。

>>> numbers=[1,2,3,4,5,67,8,9,10]
>>> numbers[2:3]
[3]

# 访问后3个元素
>>> numbers[-3:]
[8,9,10]

#访问前3个元素
>>> numbers[:3]
[1,2,3]

#更大的步长
>>> numbers[0:10:2]
[1,3,5,7,9]

序列相加

通过使用加运算符可以进行序列的连接操作:

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

乘法

>>> 'python'*5
'pythonpythonpythonpythonpythonpython'

成员资格

in运算符可以检查一个值是否在序列(或者其它容器)中,对字符串使用in操作符是一个特例,它可以查找子字符串。

>>>permission='rw'
>>>'w' in permission
True

长度、最小值、最大值

内建函数len、min和max非常有用。len函数返回序列中所包含元素的数量,min函数和max函数则分别返回序列中最大和最小的元素。

>>> numbers=[100,34,78]
>>> len(numbers)
3
>>> min(numbers)
34
>>> max(nubmbers)
100

列表

list函数

字符串有时候不像列表一样被修改,所以有时候可以先转换成列表然后再进行修改。

#list函数适合于所有类型的序列,不只是字符串。
>>>list('Hello')
['H','e','l','l','o']

可以通过下面这个表达式将列表转换成字符串。

”.join(somelist)

somelist是需要转换的列表。

序列基本操作

1.改变元素:元素赋值
>>> x=[1,1,1]
>>>x[1]=2
>>>x
[1,2,1]
2.删除元素

从列表中删除元素非常容易,使用del语句来实现。

>>> names=['Alice','Beth','Cecil','Dee-Dee','Earl']
>>> del names[2]
>>> names
['Alice','Beth','Dee-Dee','Earl']
3.分片赋值
>>>name=list('Perl')
>>>name
['P','e','r','l']
>>>name[2:]=list('ar')
>>>name
['P','e','a','r']

列表方法

1.append

append方法用于在末尾追加新的对象,它是直接修改原来的列表

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

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

>>>['to','be','or','not','to','be'].count('to')
2
3.extend

extend方法可以在列表的末尾一次性追加另一个序列中的多个值。

>>> a= [1,2,3]
>>> b= [4,5,6]
>>> a.extend(b)
>>> a
[1,2,3,4,5,6]
4.index

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

>>>knights = ['who','are','the','knights','who','say','ni']
>>>knights.index('who')
4
5.insert

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

>>> numbers=[1,2,3,5,6,7]
>>> numbers.insert(3,'four')
>>> numbers
>[1,2,3,'four',4,5,6]
6.pop

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

>>>x=[1,2,3]
>>>x.pop()
3
>>>x
[1,2]
  • pop方法是唯一一个既能修改列表又返回元素值(出了None)的列表方法。
7.remove
>>>x=[1,2,3]
>>>x.pop()
>>>x
>[1,2]
8.reverse

reverse方法将列表中的元素反向存放

>>> x=[1,2,3]
>>> x.reverse()
>>> x
[3,2,1]
9.sort

sort方法用于在原位置对列表进行排序,不是简单的返回一个已排序的列表副本。

>>>x =[2,1,3,4]
>>>x.sort()
>>>x
[1,2,3,4]
10.高级排序

可选参数:key,reverse。
key可以根据元素的长度进行排序,可以使用len作为键函数。
reverse用来指明列表是否要进行反向排序。

元祖:不可变的序列

元组与列表一样,也是一种序列。唯一不同的是元组不能修改。

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

#单个元素的元组-必须加个逗号,即使只有一个值:
>>> (42,)
(42,)

tuple函数

tuple函数的功能和list函数基本上是一致的:以一个序列作为参数并把它转换为元祖。

#输入为元组
>>>tuple(1,2,3)
(1,2,3)

#输入为字符串
>>>tuple('abc')
['a','b','c']

元组可以在映射中当做键来使用-而列表则不行。
元组作为很多内建函数和方法的返回值存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值