python 基础知识(字符串 序列)(2)


列表方法:
1. append 方法
>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
>>> xc=lst.append(5)
>>> xc
>>> print xc
None
>>> lst
[1, 2, 3, 4, 5]
>>> xc=lst
>>> xc
[1, 2, 3, 4, 5]


append 方法只修改了原来的列表,无返回,结果为None,直接赋值的时候可以

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

>>> ['to','asd','er','ww'].count('to')
1
>>> x=[[1,2],1,2,1,[1,2]]
>>> x.count(1)
2
>>> x.count([1,2])
2

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

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
>>> a+b                           ------ a=a+b 也可以实现extend的效果 但是连接操作的效率会比extend方法低
[1, 2, 3, 4, 5, 6, 4, 5, 6]
>>> a
[1, 2, 3, 4, 5, 6]


分片方法也可以实现extend  但是可读性降低
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a[len(a):]=b
>>> a
[1, 2, 3, 4, 5, 6]

4. index 方法
从列表中找出某个值第一个匹配项的索引位置
>>> knights=['We','are','the','knights','who','say','ni']

>>> knights.index('who')
4
>>> knights[4]
'who'

>>> knights.index('qiaoc')
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    knights.index('qiaoc')
ValueError: 'qiaoc' is not in list

注意:当查找不存在的项时则报错

5.insert 方法
用于将对象插入到列表中
>>> numbers=[1,2,3,5,6,7]
>>> numbers.insert(3,'four')
>>> numbers
[1, 2, 3, 'four', 5, 6, 7]

insert 方法也能用分片来实现
>>> numbers=[1,2,3,5,6,7]
>>> numbers[3:3]=['four']

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

6.pop 方法
移除列表中的一个元素(默认是最后一个),并且返回该元素的值
>>> x=[1,2,3]

>>> x.pop()
3
>>> x
[1, 2]

>>> x.pop(0)
1
>>> x
[2]

注意:pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法
(可以模拟实现 栈 先进先出)

7. remove 方法
移除列表中的某个值的第一个匹配项
>>> x=['to','be','or','not','to','be']
>>> x.remove('be')

>>> x
['to', 'or', 'not', 'to', 'be']
>>> x.remove('bee')

Traceback (most recent call last):
  File "<pyshell#43>", line 1, in <module>
    x.remove('bee')
ValueError: list.remove(x): x not in list
注意:移除不存在的元素会报错

8.reverse 方法
将列表中的元素反向存放
>>> x=[1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]

9. sort 方法
在原位置对列表进行排序,在“原位置排序”意味着改变原来的列表,从而让其中的元素能按一定的顺序排列,而不是简答的返回一个已经排序的列表副本

>>> x=[4,5,2,1,9,6]
>>> x.sort()
>>> x
[1, 2, 4, 5, 6, 9]

----------------
实现保留原来的列表 和排序后的列表
>>> x=[4,5,2,1,9,6]
>>> y=x.sort()
>>> print y
None
>>> x=[4,5,2,1,9,6]
>>> y=x[:]
>>> y.sort()
>>> x
[4, 5, 2, 1, 9, 6]
>>> y
[1, 2, 4, 5, 6, 9]

注意: 这里y=x[:] 利用分片是很有效率的复制整个列表的方法
只是简单的把x赋值给y是没用的,因为这样做就让x和y都指向同一个列表了
>>> x=[4,5,2,1,9,6]
>>> y=x
>>> y.sort()
>>> x
[1, 2, 4, 5, 6, 9]
>>> y
[1, 2, 4, 5, 6, 9]

另一种获得已排序的列表副本的方法是 sorted 函数
>>> x=[4,5,2,1,9,6]
>>> y=sorted(x)
>>> x
[4, 5, 2, 1, 9, 6]
>>> y
[1, 2, 4, 5, 6, 9]
这个函数可以用于任何序列,却总是返回一个列表
>>> sorted('python')
['h', 'n', 'o', 'p', 't', 'y']


10. 高级排序

内建函数cmp 提供了比较函数的默认实现
>>> cmp(42,32)
1
>>> cmp(99,100)
-1
>>> cmp(2,2)
0
>>> numbers=[5,2,9,7]
>>> numbers.sort(cmp)
>>> numbers
[2, 5, 7, 9]

sort 方法有另外两个可选的参数--key和reverse
参数key和参数cmp类似---必须提供一个在排序过程中使用的函数,然而该函数并不是直接用来确定对象的大小,而是为每个元素创建一个
键,然后所有元素根据键来排序。
>>> x=['aadreas','asdd','sacas','a','as','asda']
>>> x.sort(key=len)
>>> x
['a', 'as', 'asdd', 'asda', 'sacas', 'aadreas']

reverse 关键字是简单的布尔值(True或者False) 用来指明是否进行反向排序
>>> x=[4,2,5,1,6,9]
>>> x.sort(reverse=True)
>>> x
[9, 6, 5, 4, 2, 1]

注意:cmp,key,reverse参数都可以用于sorted函数!

===================================================================================

元组

元组与列表一样,也是一种序列,唯一的不同时元组不能修改
>>> 1,2,3
(1, 2, 3)
>>> (1,2,3)   ---- 元组大部分时候用大括号括起来
(1, 2, 3)

空元组可以用没有内容的2个括号表示
>>> ()
()

包括一个值的元组 必须用逗号
>>> 42
42
>>> 42,
(42,)
>>> (42,)
(42,)

tuple函数
功能与list函数基本上是一样的:以一个序列作为参数并把它转换为元组,如果参数是元组那么该参数就会被元样返回
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('abc')
('a', 'b', 'c')
>>> tuple((1,2,3))
(1, 2, 3)

转载于:https://www.cnblogs.com/java20130722/p/3206917.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值