zoukankan      html  css  js  c++  java
  • python 基础知识(字符串 序列)(2)


    列表方法:
    1. append 方法
    >>> lst = [1,2,3]
    >>> lst.append(4)
    >>> lst
    [1, 2, 3, 4]
    >>> xc=lst.append(5)
    >>> xc
    >>> print xc
    None
    >>> lst
    [1, 2, 3, 4, 5]
    >>> xc=lst
    >>> xc
    [1, 2, 3, 4, 5]


    append 方法只修改了原来的列表,无返回,结果为None,直接赋值的时候可以

    2.count 方法
    统计某个元素在列表中出现的次数

    >>> ['to','asd','er','ww'].count('to')
    1
    >>> x=[[1,2],1,2,1,[1,2]]
    >>> x.count(1)
    2
    >>> x.count([1,2])
    2

    3. extend 方法
    在列表的末尾一次性的追加另一个序列中的多个值,换句话说,可以用新列表扩展原有的列表

    >>> a=[1,2,3]
    >>> b=[4,5,6]
    >>> a.extend(b)
    >>> a
    [1, 2, 3, 4, 5, 6]
    >>> a+b                           ------ a=a+b 也可以实现extend的效果 但是连接操作的效率会比extend方法低
    [1, 2, 3, 4, 5, 6, 4, 5, 6]
    >>> a
    [1, 2, 3, 4, 5, 6]


    分片方法也可以实现extend  但是可读性降低
    >>> a=[1,2,3]
    >>> b=[4,5,6]
    >>> a[len(a):]=b
    >>> a
    [1, 2, 3, 4, 5, 6]

    4. index 方法
    从列表中找出某个值第一个匹配项的索引位置
    >>> knights=['We','are','the','knights','who','say','ni']

    >>> knights.index('who')
    4
    >>> knights[4]
    'who'

    >>> knights.index('qiaoc')
    Traceback (most recent call last):
      File "<pyshell#27>", line 1, in <module>
        knights.index('qiaoc')
    ValueError: 'qiaoc' is not in list

    注意:当查找不存在的项时则报错

    5.insert 方法
    用于将对象插入到列表中
    >>> numbers=[1,2,3,5,6,7]
    >>> numbers.insert(3,'four')
    >>> numbers
    [1, 2, 3, 'four', 5, 6, 7]

    insert 方法也能用分片来实现
    >>> numbers=[1,2,3,5,6,7]
    >>> numbers[3:3]=['four']

    >>> numbers
    [1, 2, 3, 'four', 5, 6, 7]

    6.pop 方法
    移除列表中的一个元素(默认是最后一个),并且返回该元素的值
    >>> x=[1,2,3]

    >>> x.pop()
    3
    >>> x
    [1, 2]

    >>> x.pop(0)
    1
    >>> x
    [2]

    注意:pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法
    (可以模拟实现 栈 先进先出)

    7. remove 方法
    移除列表中的某个值的第一个匹配项
    >>> x=['to','be','or','not','to','be']
    >>> x.remove('be')

    >>> x
    ['to', 'or', 'not', 'to', 'be']
    >>> x.remove('bee')

    Traceback (most recent call last):
      File "<pyshell#43>", line 1, in <module>
        x.remove('bee')
    ValueError: list.remove(x): x not in list
    注意:移除不存在的元素会报错

    8.reverse 方法
    将列表中的元素反向存放
    >>> x=[1,2,3]
    >>> x.reverse()
    >>> x
    [3, 2, 1]

    9. sort 方法
    在原位置对列表进行排序,在“原位置排序”意味着改变原来的列表,从而让其中的元素能按一定的顺序排列,而不是简答的返回一个已经排序的列表副本

    >>> x=[4,5,2,1,9,6]
    >>> x.sort()
    >>> x
    [1, 2, 4, 5, 6, 9]

    ----------------
    实现保留原来的列表 和排序后的列表
    >>> x=[4,5,2,1,9,6]
    >>> y=x.sort()
    >>> print y
    None
    >>> x=[4,5,2,1,9,6]
    >>> y=x[:]
    >>> y.sort()
    >>> x
    [4, 5, 2, 1, 9, 6]
    >>> y
    [1, 2, 4, 5, 6, 9]

    注意: 这里y=x[:] 利用分片是很有效率的复制整个列表的方法
    只是简单的把x赋值给y是没用的,因为这样做就让x和y都指向同一个列表了
    >>> x=[4,5,2,1,9,6]
    >>> y=x
    >>> y.sort()
    >>> x
    [1, 2, 4, 5, 6, 9]
    >>> y
    [1, 2, 4, 5, 6, 9]

    另一种获得已排序的列表副本的方法是 sorted 函数
    >>> x=[4,5,2,1,9,6]
    >>> y=sorted(x)
    >>> x
    [4, 5, 2, 1, 9, 6]
    >>> y
    [1, 2, 4, 5, 6, 9]
    这个函数可以用于任何序列,却总是返回一个列表
    >>> sorted('python')
    ['h', 'n', 'o', 'p', 't', 'y']


    10. 高级排序

    内建函数cmp 提供了比较函数的默认实现
    >>> cmp(42,32)
    1
    >>> cmp(99,100)
    -1
    >>> cmp(2,2)
    0
    >>> numbers=[5,2,9,7]
    >>> numbers.sort(cmp)
    >>> numbers
    [2, 5, 7, 9]

    sort 方法有另外两个可选的参数--key和reverse
    参数key和参数cmp类似---必须提供一个在排序过程中使用的函数,然而该函数并不是直接用来确定对象的大小,而是为每个元素创建一个
    键,然后所有元素根据键来排序。
    >>> x=['aadreas','asdd','sacas','a','as','asda']
    >>> x.sort(key=len)
    >>> x
    ['a', 'as', 'asdd', 'asda', 'sacas', 'aadreas']

    reverse 关键字是简单的布尔值(True或者False) 用来指明是否进行反向排序
    >>> x=[4,2,5,1,6,9]
    >>> x.sort(reverse=True)
    >>> x
    [9, 6, 5, 4, 2, 1]

    注意:cmp,key,reverse参数都可以用于sorted函数!

    ===================================================================================

    元组

    元组与列表一样,也是一种序列,唯一的不同时元组不能修改
    >>> 1,2,3
    (1, 2, 3)
    >>> (1,2,3)   ---- 元组大部分时候用大括号括起来
    (1, 2, 3)

    空元组可以用没有内容的2个括号表示
    >>> ()
    ()

    包括一个值的元组 必须用逗号
    >>> 42
    42
    >>> 42,
    (42,)
    >>> (42,)
    (42,)

    tuple函数
    功能与list函数基本上是一样的:以一个序列作为参数并把它转换为元组,如果参数是元组那么该参数就会被元样返回
    >>> tuple([1,2,3])
    (1, 2, 3)
    >>> tuple('abc')
    ('a', 'b', 'c')
    >>> tuple((1,2,3))
    (1, 2, 3)

  • 相关阅读:
    ReentrantLock的实现原理及AQS和CAS
    lock、tryLock和lockInterruptibly的差別
    Sleep和Wait的区别
    什么场景使用多线程
    多生产者多消费者,生产一个数据,消费一个数据
    线程间通讯
    如何退出线程
    线程的状态
    判断二叉树是不是完全二叉树
    js2048小游戏
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206917.html
Copyright © 2011-2022 走看看