[python]学习笔记,第二章列表和元素

     在Python中最基本的数据结构就是序列

     一、其中最为常用的是列表和元组。

     1.首先看序列,建立一个序列,以及序列间的嵌套

>>> edward=['ni  hao',43]

>>> john=['ni ye hao',42]

>>> database=[edward,john]

>>> database

[['ni  hao', 43], ['ni ye hao', 42]]

>>> john

['ni ye hao', 42]

    2.索引,类似数组的访问a[1];

    3.序列的分片以及乘除操作

>>> tag='<a href="www.baidu.com">baidu</a>'

>>> tag[2:1]

''

>>> tag[4:5]

'r'

>>> tag[4:11]

'ref="ww'

>>> tag+'helloworld'

'<a href="www.baidu.com">baidu</a>helloworld'

>>> tag*2

'<a href="www.baidu.com">baidu</a><a href="www.baidu.com">baidu</a>'

>>> [11]*11

[11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]

    4.成员资格,in操作符

    >>> 'w' in tag
    True

    5.长度,最大和最小

>>> number=[100,1,290]

>>> max(number)

290

>>> min(number)

1

>>> len(number)

3

>>> 

    二、列表,Python的苦力

    列表是可变的,可以改变列表的内容。

    list方法

    append方法:用于在列表末尾追加新的对象,append方法与其他方法类似,只是在恰当的位置修改列表,也就是说不是创建了一个新列表而是在原有列表上进行修改。

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

    extend 方法,在列表的末尾一次性追加另一个序列的多个值,换句话说,可以用新列表扩展原有的列表。比较类似连接操作,区别在与extend方法修改的原有序列,而+则返回的是一个新序列,当然也可以用分片赋值的方法来实现相同的结果。

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

    insert方法,将对象插入列表中

    pop 方法,移除列表中的一个元素,并返回该元素的值。类似数据结构的出栈操作。注意pop方法有返回值。

remove 方法,用于移除列表中某个值的第一个匹配项,和index方法相反。 注意是第一个匹配项,如果有多个则只移除第一个。

    reverse方法,将列表中的元素反向存放。颠倒的意思。

    sort 方法,用于再原位置对列表进行排序,这意味着改变原来的列表,让其中的元素按一定的顺序排序,并不是简单的返回一个列表的副本。也就是说不能通过sort函数返回一个和原序列占同样内存的副本并显示出来。

>>> name

['wangwu', 'zhangsan', 'lisi', 'xioahua']

>>> name.append("nihao")

>>> name

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao']

>>> names=name.append("shsh")

>>> names#此处不会赋值成功显然append并不是返回一个对象



>>> name

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh']

>>> name.count('shsh')

1

>>> name.append('wangwu')

>>> name.count('wangwu')

2

>>> sex=['man']

>>> name.extend(sex)

>>> name

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh', 'wangwu', 'man']

>>> name+sex

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh', 'wangwu', 'man', 'man']

>>> newname=name+sex

>>> newname

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh', 'wangwu', 'man', 'man']#利用连接也能达到extend的功能

>>> name[len(name):]=sex

>>> name

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh', 'wangwu', 'man', 'man']

>>> del name[len(name)]#此处报错是因为超出了序列的长度

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

IndexError: list assignment index out of range

>>> len(name)

9

>>> del name[8]

>>> name

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh', 'wangwu', 'man']

>>> del name[len(name)-1]

>>> name

['wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh', 'wangwu']





>>> name.index('lisi')

2

>>> name[2]

'lisi'



>>> name.insert(0,'nihao')

>>> name

['nihao', 'wangwu', 'zhangsan', 'lisi', 'xioahua', 'nihao', 'shsh', 'wangwu']



>>> name.pop()

'wangwu'

>>> name.pop(3)

'lisi'

>>> name

['nihao', 'wangwu', 'zhangsan', 'xioahua', 'nihao', 'shsh']

>>> name.pop(0)

'nihao'



>>> name.append(name.pop())

>>> name

['wangwu', 'zhangsan', 'xioahua', 'nihao', 'shsh']





>>> name.insert(3,'wangwu')

>>> name

['wangwu', 'zhangsan', 'xioahua', 'wangwu', 'nihao', 'shsh']

>>> name.remove('wangwu')

>>> name

['zhangsan', 'xioahua', 'wangwu', 'nihao', 'shsh']

>>> name.reverse#忘记加括号了

<built-in method reverse of list object at 0xb74e288c>

>>> name

['zhangsan', 'xioahua', 'wangwu', 'nihao', 'shsh']

>>> x=[1,2,3,4,5,6]

>>> x

[1, 2, 3, 4, 5, 6]

>>> x.reverse()

>>> x

[6, 5, 4, 3, 2, 1]

>>> name.reverse()

>>> name

['shsh', 'nihao', 'wangwu', 'xioahua', 'zhangsan']



>>> name.sort()

>>> name

['nihao', 'shsh', 'wangwu', 'xioahua', 'zhangsan']>>> x=[2,5,1,9,5,4,0,8]

>>> x.sort()

>>> x

[0, 1, 2, 4, 5, 5, 8, 9]

>>> y=x.sort()

>>> y >>> x=[2,5,1,9,5,4,0,8]

>>> y=x[:]

>>> y.sort()

>>> x

[2, 5, 1, 9, 5, 4, 0, 8]

>>> y

[0, 1, 2, 4, 5, 5, 8, 9]

    cmp方法,cmp(x,y),如果大于则返回1,小于返回-1,等会返回0。

    reverse关键字的使用,比如x.sort(reverse=ture)则表示反向排序。

   3.元组

     元组和列表差不多,但区别在于元组不可更改,元组的创建很简单,仅用“,”分割就可以。比如

     >>>1,2,3

         (1,2,3)        就创建了元组。元组一般用圆括号表示。

     tuple函数,将序列转换成元组。tuple([1,2,3])

      尽管看起来序列更好用,元组的限制太多。但元组也有重要的作用

      元组可以在映射中当做键使用,而列表则不行

      元组可以作为很多内建函数和方法的返回值存在,也就是说你必须对元组进行处理。(当然此处我们还用不到这些)

    

    

你可能感兴趣的:(python)