Python学习笔记1:List与Deque的比较

刚开始学习Python,做做笔记自我监督

1.列表List

  Python最基本的数据结构是序列(sequence),有6种内建序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。

  下边记录一些列表的基本方法的比较(并不是所有方法都改变列表)。

   a.删除元素的方法:del、remove、pop

>>> names = ['Bryant','Jordan','James','Duncan']
>>> del names[2]
>>> names
['Bryant', 'Jordan', 'Duncan']   
names = ['Bryant','Jordan','James','Duncan']
>>> names.remove('James')
>>> names
['Bryant', 'Jordan', 'Duncan']
>>> names.remove('Thunder')
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    names.remove('Thunder')
ValueError: list.remove(x): x not in list
names = ['Bryant','Jordan','James','Duncan']
>>> names.pop()
'Duncan'
>>> names
['Bryant', 'Jordan', 'James']

  b.添加元素:append(),extend(),insert()

lst1 = [3, 4, 5]
>>> lst2 = [0, 1, 2]
>>> lst1.append(4)
>>> lst1
[3, 4, 5, 4]
>>> lst1.extend(lst2)
>>> lst1
[3, 4, 5, 4, 0, 1, 2]
>>> lst1.insert(4,'three')
>>> lst1
[3, 4, 5, 4, 'three', 0, 1, 2]

  append()方法在列表末尾添加元素;extend()方法将两个列表拼接起来;insert()在某指定位置添加元素(与原来元素类型不同也可以)

  c.元素排序:sort(),sorted()

  sort方法改变了列表原来的内容,不会返回一个已排序的列表,所以下面的做法是错误的

x = [1, 2, 3, 4]
y =  x.sort()

  获取排序后的列表副本还可以采用sorted函数:

x = [1, 2, 3, 4]
y = sorted(x)

  sorted的函数原型为(sort()的函数原型类似):

1 sorted(data, cmp=None, key=None, reverse=False) 

  其中cmp为可以自定义的比较函数;key提供在排序中使用的函数,创建一个键;reverse值为布尔值,表示正向或反向排序。

  注:Python3.0及以后的版本中,内建的sorted()方法和list.sort()方法不再接受表示比较函数的cmp参数,使用key参数代替

2.双端队列deque

  deque为collection模块下的类型,双端队列可以在开头增加、弹出元素(这不同于List),还可以有效的旋转元素,extenfleft方法添加的对象会反序出现在deque中

 1 x = deque(range(11))
 2 >>> x
 3 deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 4])
 4 >>> x.appendleft(10)
 5 >>> x
 6 deque([10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 4])
 7 >>> x.pop()
 8 4
 9 >>> x.popleft()
10 10
11 >>> x.rotate(1)
12 >>> x
13 deque([10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

转载于:https://www.cnblogs.com/leexuefeng/p/3744821.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值