• python学习之第九课时--基本数据类型(list)


    • list

    list是一个有序的集合,序号从0起编,一个list中可以包含多种类型的数据

    list转换列表

    字符串,元组,列表 > 都可以转换成列表,转换成列表都是可以被for循环的

    基本操作:索引 切片 追加 删除 长度 循环 包含

    列表的类库功能

    List.append(x)

    添加一个元素到列表末尾,相当a[len(a):]=[x]

    List.extend(L)

    参数L是一个列表,通过添加给定列表的元素,相当a[len(a):]=L

    List.insert(i,x)

    在指定位置插入一个元素,第一个参数是位置,第二个是元素,a.insert(0,x)表示在列表的前面插入x

    List.remove(x)

    移除第一个值为x的元素,如果没有该元素,则报错

    List.pop([x])

    移除给定位置的元素,并且返回它,如果没有那个位置,则移除和返回list最后一个元素(中括号括起来的参数表明这个是可选项)

    List.clear()

    移除列表中的所有元素

    List.index(x)

    返回list中值为x的位置,如果没有该值则报错

    List.count(x)

    返回列表中x的个数

    List.sort(key=None,reverse=False)

    对列表中的元素进行排序

    List.reverse()

    反转列表中的元素

    List.copy()

    进行列表的浅复制

    以上函数运行如图:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    mylist=[110,6.5,True,"hello"]
    mylist.append(False)
    print(mylist)       #[110, 6.5, True, 'hello', False] 添加元素False
    mylist.insert(5,2.5)
    print(mylist)       #[110, 6.5, True, 'hello', False, 2.5] 在索引为5的地方添加元素2.5
    mylist.pop()
    print(mylist)       #[110, 6.5, True, 'hello', False] 删除最后元素 2.5
    mylist.pop(2)
    print(mylist)       #[110, 6.5, 'hello', False]   删除索引为2的元素 True
    mylist.sort()
    print(mylist)       #[False, 6.5, 110, 'hello']  重新排列列表
    mylist.reverse()
    print(mylist)       #['hello', 110, 6.5, False]  反转列表中的元素
    mylist.count(True)   #返回0
    print(mylist)       #['hello', 110, 6.5, False]
    mylist.index(False)  #返回元素False的索引 3
    print(mylist)       #['hello', 110, 6.5, False]
    mylist.remove("hello")
    print(mylist)       #[110, 6.5, False]  #移除元素hello

    切片

    如:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #切片
    a=["zou","lu","chen"]
    print(a[0:2])
    #输出 zou lu 这样就切片出了,第零一个和第二个下标的元素

    统计列表里有多少个元素

    如:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #切片
    a=["zou","lu","chen"]
    print(len(a))
    #输出 3 统计列表里有多少个元素

    循环列表

    while循环

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #while循环
    a = ["zou","lu","chen"]
    b = 0
    while b < len(a): #len(统计列表里的元素)
         print(a[b])
         b += 1
    #循环出列表里的所有元素 zou lu chen

    for循环

    for循环每次循环到的数据就是列表的一个元素

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #for循环
    a = ["zou","lu","chen"]
    for b in a: #b为自定义循环变量
         print(b)
    #循环出列表里的所有元素

    extend(self, iterable) 

    (扩展列表) 要扩展的可迭代变量:可迭代是只要是能通过for循环出来的都为可迭代  

    也就是可以将一个列表扩展到另一个列表

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    a=["zou","lu","chen"]
    b=["1","2","3"]
    a.extend(b)
    print(a)
    #打印出['zou', 'lu', 'chen', '1', '2', '3'] 将一个列表扩展到另一个

    删除元素

      索引方式删除(删除单个元素)

      格式:del 列表变量[要删除的下标]

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    a=["zou","lu","chen"]
    del a[0]
    print(a)
    #打印出['lu', 'chen'] 删除元素zou

    切片方式删除(删除多个元素)

      格式:del 列表变量[开始位置:结束位置]

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    a=["zou","lu","chen"]
    del a[0:2]
    print(a)
    #打印出['chen'] 删除元素zou lu

    range

       range函数可以产生一个连续的list,基本质还是list

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    a=range(10)
    print(a)
    print(type(a))

    列表推导式

    列表推导式书写形式:

    [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    a=range(10)
    print(a)
    b=[x**2 for x in a]
    print(b)
    c=([(x,x*10) for x in a])
    print(c)
    d=[(x,y) for x in a if x%2 if x>3 for y in a if y>7 if y!=8]
    print(d)
    e=[x*y for x in [1,2,3] for y in [1,2,3]]
    print(e)

    把列表当作栈来使用

    List提供的一些方法使它很容易当作栈来使用,栈即是最后加入的元素最先取出(后进先出”),添加一个元素到栈的顶部使用append()方法,从栈的顶部取出一个元素使用pop()方法(不提供明确的索引)

    如:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    stack=[2,3,4]
    stack.append(0)
    stack.append(1)
    print(stack)
    stack.pop()
    print(stack)
    stack.pop()
    print(stack)

    把列表当作队列使用

    队列即是第一个加进来的元素第一个取出(“先进先出”)。列表对于这个设想并不是那么有效率,从列表前面进行插入和取出很慢,原因是后面的元素必须每个都进行移动

    为了实现队列,使用collections.deque,deque的设计使得它能快速从两端插入和取出

    如:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    from collections import deque
    queue=deque(["zou","lu","chen"])
    queue.append("Bob")
    queue.append("John")
    print(queue)
    queue.popleft()
    print(queue)
    queue.popleft()
    print(queue)

    列表的功能

    转换列表

    索引

    切片

    for循环

    长度

    删除元素

    反转

    排序

    追加

    插入

    移除元素

    索引位置

    统计元素个数

    扩展

    清除

  • 相关阅读:
    P4165 [SCOI2007]组队
    CF575B
    SG函数胡乱一气
    CF280C Game on Tree
    AGC010F
    CF140E
    多功能的低功耗蓝牙可穿戴设备用于监测血液酒精浓度
    智能手环幕后的英雄
    图像处理实用资源
    15.12DataGridView分页显示
  • 原文地址:https://www.cnblogs.com/LQ6H/p/python-9.html
Copyright © 2020-2023  润新知