Python序列——列表

    • 列表是什么

      • 1 创建列表
      • 2 访问列表和更新列表
    • 列表相关操作
    • 内建函数对列表的支持
      • 1 cmp
      • 2 序列类型函数
    • 列表内建函数
    • 列表应用
      • 1 堆栈
      • 2 队列

1. 列表是什么

列表也是序列的一种。列表能保存任意数目的Python对象,列表是可变类型。

1.1 创建列表

列表可以使用[]来创建,或者使用工厂方法list()来创建。

>>> t = list()
>>> type(t)
<type ‘list‘>
>>> l = []
>>> type(l)
<type ‘list‘>
>>> t == l
True

1.2 访问列表和更新列表

>>> t = list(‘furzoom‘)
>>> t
[‘f‘, ‘u‘, ‘r‘, ‘z‘, ‘o‘, ‘o‘, ‘m‘]
>>> t[1]
‘u‘
>>> t[2] = ‘n‘
>>> t
[‘f‘, ‘u‘, ‘n‘, ‘z‘, ‘o‘, ‘o‘, ‘m‘]
>>> t.append(‘.‘)
>>> t
[‘f‘, ‘u‘, ‘n‘, ‘z‘, ‘o‘, ‘o‘, ‘m‘, ‘.‘]
>>> del t[3]
>>> t
[‘f‘, ‘u‘, ‘n‘, ‘o‘, ‘o‘, ‘m‘, ‘.‘]
>>> del t
>>> t
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘t‘ is not defined

2. 列表相关操作

支持比较运算、切片[]或者[:]、in, not in、连接操作符+、重复操作。

如果可以,尽量使用list.extend()方式代替连接操作符。

列表还支持非常重要的列表解析操作。

>>> [i for i in xrange(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

3. 内建函数对列表的支持

3.1 cmp()

比较原则:

  1. 对两个列表的元素进行比较。
  2. 如果比较的元素是同类型的,则比较其值,返回结果。
  3. 如果两个元素不是同一类型的,则检查它们是否是数字。

    3.1 如果是数字,执行必要的数字强制类型转换,然后比较。

    3.2 如果有一方的元素是数字,则另一方的元素大。

    3.3 否则,通过类型名字的字母顺序进行比较。

  4. 如果有一个列表首先到达末尾,则另一个长一点的列表大。
  5. 如果两个列表都到达结尾,且所有元素都相等,则返回0。

3.2 序列类型函数

  • len()
  • max()
  • min()
  • sorted()
  • reversed()
  • enumerate()
  • zip()
  • sum()
  • list()
  • tuple()

4. 列表内建函数

  • list.append(x)
  • list.extend(x)
  • list.count(x)
  • list.index(x[, start[, end]])
  • list.insert(index, x)
  • list.pop([index])
  • list.remove(x)
  • list.remove()
  • list.sort([cmp[, key[, reverse]]])

5. 列表应用

5.1 堆栈

#!/usr/bin/env python
# -*- coding: utf-8 -*-

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

CMDs = {‘u‘: pushit, ‘o‘: popit, ‘v‘: viewstack}

def showmenu():
    pr = """
    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: """
    while True:
        while True:
            try:
                choice = raw_input(pr).strip()[0].lower()
            except (EOFError, KeyboardInterrupt, IndexError):
                choice = ‘q‘

            print ‘\nYou picked: [%s]‘ % choice
            if choice not in ‘uovq‘:
                print ‘Invalid option, try again‘
            else:
                break

        if choice == ‘q‘:
            break

        CMDs[choice]()

if __name__ == ‘__main__‘:
    showmenu()

运行示例如下:


    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: u

You picked: [u]
Enter New string: Python

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: u

You picked: [u]
Enter New string: is

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: u

You picked: [u]
Enter New string: cool!

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: v

You picked: [v]
[‘Python‘, ‘is‘, ‘cool!‘]

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: o

You picked: [o]
Removed [ ‘cool!‘ ]

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: o

You picked: [o]
Removed [ ‘is‘ ]

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: o

You picked: [o]
Removed [ ‘Python‘ ]

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: o

You picked: [o]
Cannot pop from an empty stack!

    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice: ^D

You picked: [q]

5.2 队列

#!/usr/bin/env python
# -*- coding: utf-8 -*-

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

CMDs = {‘e‘: enQ, ‘d‘: deQ, ‘v‘: viewQ}

def showmenu():
    pr = """
    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: """
    while True:
        while True:
            try:
                choice = raw_input(pr).strip()[0].lower()
            except (EOFError, KeyboardInterrupt, IndexError):
                choice = ‘q‘

            print ‘\nYou picked: [%s]‘ % choice
            if choice not in ‘edvq‘:
                print ‘Invalid option, try again‘
            else:
                break

        if choice == ‘q‘:
            break

        CMDs[choice]()

if __name__ == ‘__main__‘:
    showmenu()

运行示例如下:


    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: e

You picked: [e]
Enter New string: Bring out

    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: e

You picked: [e]
Enter New string: your dead!

    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: v

You picked: [v]
[‘Bring out‘, ‘your dead!‘]

    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: d

You picked: [d]
Removed [ ‘Bring out‘ ]

    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: d

You picked: [d]
Removed [ ‘your dead!‘ ]

    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: d

You picked: [d]
Cannot pop from an empty queue!

    (E)nqueue
    (D)equeue
    (V)iew
    (Q)uit

    Enter choice: ^D

You picked: [q]
时间: 2025-01-02 16:03:06

Python序列——列表的相关文章

python序列(列表,元组,字典)的增删改查

列表 操作 列表 方法 示例 增加 list.append(obj) 增加元素到末尾 eg. >>> list1=['hello','world','how','are','you'] >>> list1.append('!') >>> list1 ['hello', 'world', 'how', 'are', 'you', '!'] list.insert(index, obj) 增加元素到指定位置 index:索引位置 obj:内容 eg. &g

python 数据类型 序列——列表

python 数据类型 序列--列表 **列表** list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表是可变类型的数据. 用[]表示列表,包含了多个以逗号分割开的数字或者字符串. >>> list1 = ['1','chen','陈'] >>> list2 = [1,2,3,4] >>> list3 = ["str1","str1","22"] >>

python 学习笔记 二 序列, 列表, 元组, 字符串

序列 序类是一个集合概念, Pthon包括六种内建序列: 列表, 元组, 字符串, Unicode字符串, buffer对象和xrange对象. 其中, 我们最长用的要数前三个. 通用序列操作 1. 索引(indexing) 序列的所有元素都是有编号的(从0开始...), 这些元素可以通过编号访问, 如: >>> greeting = 'Hello' >>> greeting[0] 'H' 使用负数索引(从-1开始...)是从右边开始的: >>> gr

Python语言之数据结构1(序列--列表,元组,字符串)

0.序列 列表,元组,字符串都是序列. 序列有两个特点:索引操作符和切片操作符.索引操作符让我们可以从序列中抓取一个特定项目.切片操作符让我们能够获取序列的一个切片,即一部分序列. 以字符串为例: 1 str="01 3456 89?" 2 3 print( str[0] ) #'0',索引 4 print( str[1:5] ) #'1 34 ',切片 5 print( str[5:1:-1] ) #'543 ' 6 print( str[1:5:-1] ) #output a '\

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通

Python list列表的排序

当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建函数sort() 这个应该是我们使用最多的也是最简单的排序函数了,可以直接对列表进行排序 用法: list.sort(func=None, key=None, reverse=False(or True)) 对于reverse这个bool类型参数,当reverse=False时:为正向排序:当reverse=True时:为方向排序.当然默认为False. 执

python中列表操作

列表 目录: 1:序列操作    ------索引    ------分片    ------步长    ------序列运算    ------成员资格检验    ------内建函数-len-max-min 2:列表操作    ------list函数        ------改变列表    ------删除元素    ------分片赋值 3:列表方法    ------append 在列表末尾添加新的元素    ------count 统计某个元素在列表中出现的次数    ------

Python 序列操作符与函数

Python序列包括:元组.列表.字符串. 1.序列共同支持的函数: 函数 功能 说明 cmp(seq1,seq2) 比较序列大小 从左到右依次比较,直到比较出大小 len(seq1) 获取序列长度 如果seq1为字符串,返回字符串中字符数,否则返回序列中元素个数 max(seq1)或min(seq1)   求最大值或最小值 seq1字符串:返回字符串中ASCII码最大或最小的字符.也可比较序列中元素或多个序列 sorted(seq1) 按由小到大顺序排列   sum(seq1) 求和 对数字型

python学习笔记:python序列

python序列包括字符串.列表和元组三部分,下面先总的说一下python序列共有的一些操作符和内建函数. 一.python序列 序列类型操作符 标准类型的操作符一般都能适用于所有的序列类型,这里说一下序列类型操作符. 1. 成员关系操作符(in.not in) 成员关系操作符是用来判断一个元素是否属于一个序列的.具体语法: 对象 [not] in 序列 2. 连接操作符(+) 这个操作符允许我们把一个序列和另一个相同类型的序列做连接,具体语法: sequence1 +sequence2 3.