Python序列——列表

列表是能保留任意数目的Python对象的灵活的容器。

  • 赋值
  • 访问
  • 更新(append()
  • 删除(delpop()

序列类型操作符

  • 切片([]和[:])

  • 成员关系操作(in, not in)

  • 连接关系符(+)

extend() 方法可代替连接操作符把一个列表的内容添加到另一个中去。

注: 使用 extend() 方法比连接操作的一个优点是它实际上是把新列表添加到了原有列表里面,而不是像连接操作符那样新建一个列表。

内建函数 append() ,向列表中添加一个对象obj。

  • 重复操作符(*)

标准类型函数 cmp()

序列类型函数

  • len()
  • max()min()
  • sorted()reversed()

sorted函数可以将任何序列返回为一个新的有序列表:

sorted([4,6,2,6,2,1])
[1,2,2,4,6,6]

reversed函数用于按逆序迭代序列中的元素:

list(reversed(range(10)))
[9,8,7,6,5,4,3,2,1,0]
  • enumerate()zip()

enumerate函数可以逐个返回序列的(i, value)元组:

for i, value in enumerate(collection):
    # use value to do something

zip函数用于将多个序列中的元素配对,从而产生一个新的++元组列表++:

seq1 = ['hello', 'world']
seq2 = ['one', 'two']

zip(seq1, seq2)
[('hello', 'one'), ('world', 'two')]

巧妙用法:对该序列进行解压

pitchers = [('Nolan', 'Ryan'), ('Roger', 'Clemens')]

first_names, last_names = zip(*pitchers)

first_names
('Nolan','Roger')
last_names
('Ryan', 'Clemens')
  • sum()
  • list()tuple()

列表类型內建函数

列表函数作用
list.append(obj)向列表中添加一个++对象obj++
list.count(obj)返回一个对象obj在列表中出现的次数
list.extend(seq)把++序列seq++的内容添加到列表中。
list.index(obj,i=0,j=len(list))返回list[k]==obj的k值,并且k的范围在 1<=k<=j; 否则引发++ValueError异常++
list.insert(index,obj)在索引量为index的位置插入对象obj
list.pop(index=-1)++删除并返回++指定位置的对象,默认是最后一个元素。
list.remove(obj)从列表中删除对象obj
list.reverse()原地翻转列表
list.sort(func=None,key=None,reverse=False)默认排序算法是归并排序

注:
- sort()extend()reverse()中原地执行操作。

  • extend()方法的参数支持任何可迭代对象。

用列表构建其他数据结构

堆栈

#!/usr/bin/env python

stack = []

def pushit():
    stack.append(raw_input('Enter New string: ').strip())

def popit():
    if len(stack) == 0:
        print 'cannot pop from an empty stack!'
    else:
        print 'Removed [', `stack.pop()`, ']'

def viewstack():
    print stack  #call str() internally

队列


#!/usr/bin/env python

queue = []

def enQ():
    queue.append(raw_input('Enter new string: ').strip())

def deQ():
    if len(queue) == 0:
        print 'Cannot pop from an empty queue!'
    else:
        print 'Removed [', `queue.pop(0)`, ']'

def viewQ():
    print queue  #call str() internally
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值