Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19877693
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: Python/Ruby

2009-08-16 10:39:37

2009-8-16

磁针石:xurongzhong#gmail.com

博客:oychw.cublog.cn


字符串转换为列表

>>> list('Hello')

['H', 'e', 'l', 'l', 'o']

列表转换为字符串

''.join(somelist)

 

基本的列表操作:

列表的赋值类似C语言中的数组操作。

删除元素:

>>> names = ['Alice', 'Beth', 'Cecil', 'Dee-Dee', 'Earl']

>>> del names[2]

>>> names

['Alice', 'Beth', 'Dee-Dee', 'Earl']

 

批量操作:

>>> name = list('Perl')

>>> name

['P', 'e', 'r', 'l']

>>> name[2:] = list('ar')

>>> name

['P', 'e', 'a', 'r']

 

>>> name = list('Perl')

>>> 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, 2, 3, 4, 5]

>>> numbers[1:4] = []

>>> numbers

[1, 5]

 

列表的方法:

附加:

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

>>> lst.append(4)

>>> lst

[1, 2, 3, 4]

 

统计:

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

2

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

>>> x.count(1)

2

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

1

 

扩展:

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

>>> b = [4, 5, 6]

>>> a.extend(b)

>>> a

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

与连接类似,不过连接返回的是新列表。

 

索引:

>>> knights = ['We', 'are', 'the', 'knights', 'who', 'say', 'ni']

>>> knights.index('who')

4

 

插入:

>>> numbers = [1, 2, 3, 5, 6, 7]

>>> numbers.insert(3, 'four')

>>> numbers

[1, 2, 3, 'four', 5, 6, 7]

 

出栈;

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

>>> x.pop()

3

>>> x

[1, 2]

>>> x.pop(0)

1

>>> x

[2]

 

移除:

>>> x = ['to', 'be', 'or', 'not', 'to', 'be']

>>> x.remove('be')

>>> x

['to', 'or', 'not', 'to', 'be']

只移除第一次碰到的,无返回值。

 

翻转:

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

>>> x.reverse()

>>> x

[3, 2, 1]

修改实际列表,无返回值。reversed是有返回值的。

 

排序:

>>> x = [4, 6, 2, 1, 7, 9]

>>> x.sort()

>>> x

[1, 2, 4, 6, 7, 9]

无返回值

>>> x = [4, 6, 2, 1, 7, 9]

>>> y = x[:]

>>> y.sort()

>>> x

[4, 6, 2, 1, 7, 9]

>>> y

[1, 2, 4, 6, 7, 9]

注意不要使用,这样指向的是同一个列表。

函数sorted是有返回值的。

 

高级排序:

       内置函数cmp

>>> cmp(42, 32)

1

>>> cmp(99, 100)

-1

>>> cmp(10, 10)

0

>>> numbers = [5, 2, 9, 7]

>>> numbers.sort(cmp)

>>> numbers

[2, 5, 7, 9]

 

>>> x = ['aardvark', 'abalone', 'acme', 'add', 'aerate']

>>> x.sort(key=len)

>>> x

['add', 'acme', 'aerate', 'abalone', 'aardvark']

 

 

>>> x = [4, 6, 2, 1, 7, 9]

>>> x.sort(reverse=True)

>>> x

[9, 7, 6, 4, 2, 1]

 

更多参考:

 

§2.4  数组

>>> 1, 2, 3

(1, 2, 3)

 

是不能修改的列表

 

以下第一个不是数组:

>>> 42

42

>>> 42,

(42,)

>>> (42,)

(42,)

 

>>> 3*(40+2)

126

>>> 3*(40+2,)

(42, 42, 42)

 

函数:

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

(1, 2, 3)

>>> tuple('abc')

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

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

(1, 2, 3)

 

基本操作:

>>> x = 1, 2, 3

>>> x[1]

2

>>> x[0:2]

(1, 2)

 

多用于key映射

 

阅读(1428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~