zoukankan      html  css  js  c++  java
  • Python基础(3)

    Python

    列表是序列对象,可包含任意的Python数据信息,如字符串、数字、列表、元组等。列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加、修改、删除等操作。列表用[]包括起来的。

    列表操作符:

    “+”:可以链接两个List,出于性能考虑,推荐使用extend替代。

    “*”:可以对List进行重复操作。

    “[:]”:可以对List进行切片操作。

    “in” “not in”:成员测试符号。

    “==” “<” “>” “!=“:比较两个List。

    内置函数:

    cmp() len() max() min()同样可以应用于List对象。

    方法函数:

    append(x) 在列表尾部追加单个对象x。使用多个参数会引起异常。
    count(x) 返回对象x在列表中出现的次数。
    extend(L) 将列表L中的表项添加到列表中。返回None。
    Index(x) 返回列表中匹配对象x的第一个列表项的索引。无匹配元素时产生异常。
    insert(i,x) 在索引为i的元素前插入对象x。如list.insert(0,x)在第一项前插入对象。返回None。
    pop(x) 删除列表中索引为x的表项,并返回该表项的值。若未指定索引,pop返回列表最后一项。
    remove(x) 删除列表中匹配对象x的第一个元素。匹配元素时产生异常。返回None。
    reverse() 颠倒列表元素的顺序。
    sort() 对列表排序,返回none。bisect模块可用于排序列表项的添加和删除。

    对于append()与extend()看似类似,其实不同。extend 接受一个参数, 这个参数总是一个 list, 并且添加这个 list 中的每个元素到原 list 中。append 接受一个参数, 这个参数可以是任何数据类型, 并且简单地追加到 list 的尾部。

    >>> l = ['a','b','c']
    >>> l.extend(['d','e','f'])
    >>> l
    ['a', 'b', 'c', 'd', 'e', 'f']
    >>> l = ['a','b','c']
    >>> l.append(['d','e','f'])
    >>> l
    ['a', 'b', 'c', ['d', 'e', 'f']]
    >>>

    用List模拟堆栈:

    >>> stack = []
    >>> stack.append(1)
    >>> stack.append(2)
    >>> stack.append(3)
    >>> stack
    [1, 2, 3]
    >>> stack.pop()
    3
    >>> stack
    [1, 2]

    用List模拟队列:

    >>> queue = []
    >>> queue.append(1)
    >>> queue.append(2)
    >>> queue.append(3)
    >>> queue
    [1, 2, 3]
    >>> queue.pop(0)
    1
    >>> queue
    [2, 3]

    映射List:

    Python 的强大特性之一是其对 list 的解析, 它提供一种紧凑的方法, 可以通过对 list 中的每个元素应用一个函数, 从而将一个 list 映射为另一个 list。

    >>> l = [1,2,3,4]
    >>> [elem * 2 for elem in l]
    [2, 4, 6, 8]

    Python 循环遍历 li 中的每个元素。对于每个元素均执行如下操作, 首先临时将其值赋给变量 elem, 然后 Python 应用函数 elem*2 进行计算, 最后将计算结果追加到要返回的 list 中。

    对 list 的解析并不改变原始的 list

    Python还为我们提供了相应的内置函数来执行List的映射操作。

    map():map(function, sequence) -> list

    该函数返回一个List,其中的值是sequence中的item作为参数应用function的结果。

    >>> map(hex, l)
    ['0x1', '0x2', '0x3', '0x4']

    reduce():reduce(function, sequence[, initial]) -> value

    该函数会把sequence的前两个item作为参数传给function,然后得出的结果再与下一个item作为参数传给function,直到整个sequence结束。

    >>> reduce(add, [1,2,3,4,5,6,7,8,9])
    45

    filter():filter(function or None, sequence) -> list, tuple, or string

    该函数把sequece的每一个item作为参数传给function,返回function认为是true的值组成的序列对象。结果的数据类型依赖与sequence,如果sequence是tuple或者是string,返回的结果类型同传入的类型,否则返回list类型。如果function是None,则返回的值就是sequence为真的值组成的序列对象。

    >>> def foo(x):
    ...     return 'love' in x
    >>> filter(foo,['i love python', 'i hate python'])
    ['i love python']
  • 相关阅读:
    Java 8 forEach简单例子
    Intellij IDEA 使用
    java中的sleep()和wait()的区别
    MySQL问答整理
    java 正则例子
    如何在两个线程之间共享数据
    蜻蜓FM涉嫌诈骗投资人和广告主源代码剖析
    玩DNF开启NVIDIA独显的方法
    WSAEventSelect模型编程 详解
    签名时加密失败 --“对程序集签名时出错
  • 原文地址:https://www.cnblogs.com/TonyZhao/p/3527042.html
Copyright © 2011-2022 走看看