• 列表(list)与元组(tuple)


    一、列表

    列表是最常见的一种数据形式,是一种有序的序列,可以随时添加和删除其中的元素。它可以把大量的数据放在一起,可以对其进行集中处理。

    列表是以方括号“[]”包围的数据集合,不同成员间以“,”分隔。列表中可以包含任何数据类型,也可以包含一个列表。列表可以通过序号来访问其中的成员。

    1、列表内置方法

    list.append(obj)

    在列表末尾添加新的对象

    list.clear()

    删除列表中的所有项,相当于 del a[:]

    list.count(obj)

    统计某个元素在列表中出现的次数

    list.copy()

    返回列表的一个浅拷贝

    list.extend(seq)

    在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

    list.index(obj)

    从列表中找出某个值第一个匹配项的索引位置

    list.insert(index, obj)

    将对象插入列表

    list.pop(obj=list[-1])

    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

    list.remove(obj)

    移除列表中某个值的第一个匹配项

    list.reverse()

    反向列表中元素

    list.sort([func])

    对原列表进行排序

    (1)list.append(obj)——在列表末尾添加新的对象

    >>> l = ['python',3,7]
    >>> l = ['c',3,6,2,'java',5.4]
    >>> l
    ['c', 3, 6, 2, 'java', 5.4]
    >>> l.append(6)
    >>> l
    ['c', 3, 6, 2, 'java', 5.4, 6]

    (2)list.clear()——删除列表中的所有项,相当于 del a[:]

    >>> l
    ['c', 3, 6, 2, 'java', 5.4, 6]
    >>> l.clear()
    >>> l
    []

    (3)list.count(obj)——统计某个元素在列表中出现的次数

    >>> l = ['c', 3, 6, 2, 'java', 5.4, 6]
    >>> l.count(6)
    2
    >>> l.count('6')
    0

    (4)list.copy()——返回列表的一个浅拷贝

    >>> l2 = l.copy()
    >>> l2
    ['c', 3, 6, 2, 'java', 5.4, 6]

    (5)list.extend(seq)——在列表末尾追加另一个序列中的多个值(用新列表扩展原来的列表)

    >>> l
    ['c', 3, 6, 2, 'java', 5.4, 6]
    >>> l.extend([2,'a'])
    >>> l
    ['c', 3, 6, 2, 'java', 5.4, 6, 2, 'a']
    >>> l.extend('python')
    >>> l
    ['c', 3, 6, 2, 'java', 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o', 'n']

    (6)list.index(obj)——从列表中找出某个值第一个匹配项的索引位置

    >>> l
    ['c', 3, 6, 2, 'java', 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o', 'n']
    >>> l.index(2)
    3

    (7)list.insert(index, obj)——将对象插入列表

    >>> l
    ['c', 3, 6, 2, 'java', 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o', 'n']
    >>> l.insert(5,7)
    >>> l
    ['c', 3, 6, 2, 'java', 7, 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o', 'n']

    (8)list.pop(obj=list[-1])——移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

    >>> l
    ['c', 3, 6, 2, 'java', 7, 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o', 'n']
    >>> s = l.pop()
    >>> l
    ['c', 3, 6, 2, 'java', 7, 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o']
    >>> s
    'n'

    (9)list.remove(obj)——移除列表中某个值的第一个匹配项

    >>> l
    ['c', 3, 6, 2, 'java', 7, 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o']
    >>> l.remove(6)
    >>> l
    ['c', 3, 2, 'java', 7, 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o']

    (10)list.reverse()——反向列表中元素

    >>> l
    ['c', 3, 2, 'java', 7, 5.4, 6, 2, 'a', 'p', 'y', 't', 'h', 'o']
    >>> l.reverse()
    >>> l
    ['o', 'h', 't', 'y', 'p', 'a', 2, 6, 5.4, 7, 'java', 2, 3, 'c']

    (11)list.sort([func])——对原列表进行排序

    >>> lst = [2,6,4,9,5]
    >>> lst.sort()
    >>> lst
    [2, 4, 5, 6, 9]
    >>> alst = ['hadoop','python','linux','java']
    >>> alst.sort()
    >>> alst
    ['hadoop', 'java', 'linux', 'python']
    >>> alst.sort(key = len)
    >>> alst
    ['java', 'linux', 'hadoop', 'python']

    2、列表推导式

            推导式是Python中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:列表推导式、字典推导式、集合推导式、嵌套列表推导式。

            列表推导式提供了一种创建列表的简洁方法。列表推导式书写形式:[表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件]

    举例:

    (1)列表平方

    >>> lst = [2,6,3,5,9]
    >>> [ x**2 for x in lst]
    [4, 36, 9, 25, 81]

    (2)列表偶数

    >>> [ x for x in lst if x%2 == 0]
    [2, 6]

    (3)移除元音字母

    >>> s = 'this is list example'
    >>> vowels = 'aeiou'
    >>> [ i for i in s if i not in vowels]
    ['t', 'h', 's', ' ', 's', ' ', 'l', 's', 't', ' ', 'x', 'm', 'p', 'l']
    >>> ''.join([ i for i in s if i not in vowels])
    'ths s lst xmpl'

    (4)求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表

    >>> [(x,y) for x in range(5) if x%2 == 0 for y in range(5) if y%2 == 1]
    [(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]

    3、生成器表达式

            Python还支持另外一种和列表表达式类似的结构,叫做生成器表达式(generator expression),除了它有一种称之为“惰性计算”的特点以外,它和列表推导式的用法基本一致。生成器表达式的语法和列表推导式一样,只不过生成器表达式是被()括起来的,而不是[]。

            生成器表达式并不真正创建列表, 而是返回一个生成器,它的工作方式是每次处理一个对象,而不是一口气处理和构造整个数据结构,这样做的潜在优点是可以节省大量的内存。

    >>> g = (i for i in range(10) if i%2)
    >>> g
    <generator object <genexpr> at 0x00000000036274C0>
    >>> for i in g:
      print(i)
    1 3 5 7 9

    二、元组

    元组可以看成一种特殊的列表,与列表不同的是元组一旦建立就不能改变,既不能改变其中的数据项,也不能添加和删除数据项。

    元组的基本形式是以圆括号“()”括起来的数据元素,可以通过序号来引用其中的元素。

    1、元组的创建

    创建空元组:

    >>> t = ()
    >>> t
    ()

    需要注意的是,元组中只包含一个元素时,需要在元素后面添加逗号:

    >>> t1 = (2,)
    >>> t1
    (2,)

    2、元组的内置方法

    tuple.count(obj)  统计某个元素在元组中出现的次数

    tuple.index(obj)  从元组中找出某个值第一个匹配项的索引位置

    >>> tup = (3,8,5,7,2,5)
    >>> tup.count(5)
    2
    >>> tup.index(3)
    0

     

    参考文档:

     <http://python.jobbole.com/80823/>

     <http://www.runoob.com/python/python-lists.html>

  • 相关阅读:
    数据校验
    Struts2中OGNL
    Struts2 入门(新手必看)
    transactionManager 以及datasource type解析
    MyBatis
    rails 布署
    ubuntu ssh
    ubutun 下配置php和postgresql
    MS SQL 数据库所在C盘变得很大解决办法
    将表里的数据批量生成INSERT语句的存储过程 增强版
  • 原文地址:https://www.cnblogs.com/kuenen/p/5980582.html
Copyright © 2020-2023  润新知