您的位置:首页 > 编程语言 > Python开发

python内置数据类型:列表和元组

2011-10-31 16:13 676 查看
序列(列表和元组)

2.2 通用序列操作

1)索引
从左到右计数(第一个)为0,从右到左计数(最后一个)-1.
字符串可以直接使用索引:"hello"[2]

2)分片
提供两个边界作为索引,第一个边界包括,第二个边界不包括。
numbers = {1,2,3,4,5,6,7,8,9,10}

优雅捷径:
numbers[-3:-1] [8,9]
numbers[-3:0] [] 左边索引必须比右边索引早出现才不是空集
numbers[-3:] 不填边界表示到最边界处
numbers[:] 整个列表
步长:
默认步长是1,如果不是1,需要指定
numbers[m:n:k] 指定步长为k
步长不能为0,但步长可以为负数,为负数时,列表的左右边界应该是从右到左的。

3)序列相加:
[1,2,3] + ["hello"] [1, 2, 3, 'hello']
但列表和字符串不能相加

4)乘法:
“python” * 2 “pythonpython”
[42] * 3 [42,42,42]
None 空列表 初始化

5)成员资格:in
返回布尔值:某个对象是否为一个序列的成员

6)长度
内建函数len,max,min

-----------------------------------------------------------------------------

2.3 列表:

1.list函数

将字符串或其他系列转换成列表
由于字符串不可变,转换成列表后可以改变:
list("hello") ['h','e','l','l','o']

ps:用 ''.join(somelist)可以将一个列表somelist转换成字符串

2.列表基本操作

1)改变列表:元素赋值
不能为一个不存在的索引位置赋值

2)删除元素
del names[2]
删除后列表长度自动缩减,顺序保持

3)分片赋值
一次为多个元素赋值
a 注意在普通赋值时,不存在的索引处不能赋值,但是分片赋值却可以实现使用与原分片不等长的序列将分片替换:
name = list('perl')
name[1:] = list('ython')

b 替换一个空分片的分片赋值可以实现插入一个序列

c 同理,给一个分片赋值一个空的分片可以用来删除这个分片

3.列表方法

1)append
lst.append(xxx):注意没有返回值!

2)count
统计某个元素在列表中出现的次数:lst.count(xxx)

3)extend
在一个序列的末尾追加另一个序列中的多个值
a.extend(b) 将b追加到a后面了,a此时改变了

4)index
names.index('jmz')
找到列表中第一个匹配项的索引,找不到会引发异常

5)insert
names.insert(5,'jmz')
将‘jmz’这个名字插入为索引5位置处

6)pop
lst.pop() 移除最后一个元素并返回这个移除的元素
pop方法是唯一一个既能修改列表又能返回元素的方法,注意以上方法中修改列表的方法均不返回值。

7)remove
names.remove('jmz') 删除第一个匹配的项目

8)reverse
names.reverse() 将列表元素倒序存放

9)sort
注意也是没有返回值
x.sort() x变得有序,但这个表达式并不返回值
y = x.sort并不能将x的有序形式赋值给y

可以这样:
y = x[:]
y.sort()
或者:
y = sorted(x)
来实现一样的功能

10)高级排序

cmp参数来指定自己的排序方式:numbers.sort(cmp)
定义你自己的cmp函数,小于时返回负数,大于时返回正数,相等时返回0

key参数指定排序键:names.sort(key = len) 按照长度

reverse参数指定是否反向排序:number.sort(reverse = true)

-----------------------------------------------------------------------------

2.4 元组学习:不可变序列

如果你用逗号隔开一些值,那么就自动创建了元组

1)tuple函数
将字符串,序列转换为元组,如果被转换的本身就是元组,则原样返回。
tuple([1,2,3]) (1,2,3)
tuple('hello') ('h','e','l','l','l','o')
tuple((1,2,3)) (1,2,3)

-----------------------------------------------------------------------------

总结:

列表:[] 可变序列
元组:() 不可变序列

一些方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: