• Python——数据类型之list、tuple


    本篇主要内容

    •  list初识

    •  list元素的访问

    •  list内部所有的方法

    •  tuple介绍和与list用法的比较

    我觉得Python里面用的最多的就是List了,感觉好强大。他能存各种东西。

    1、首先直观的看一下list这个数据类型

    a=[1,2.1,True,'12',[1,2]]
    for i in a:
        print(i)

    输出之后

    1
    2.1
    True
    12
    [1, 2]

     里面的for循环之前说过了,能遍历里面的所有元素。可以直观的看到,list里面可以存各种数据类型的东西。

    2、list的访问

    第一种是跟C一样,直接下标

    a=[1,2,3,4,5]
    print(a[0])
    print(a[4])

    输出

    1
    5

    注意这里也是从0开始访问第一个元素。

    第二种,Python支持反向访问。

    a=[1,2,3,4,5]
    print(a[-1])#访问倒数第一个
    print(a[-2])#访问倒数第二个

    输出

    5
    4

    第三种,区间访问

    a=[1,2,3,4,5]
    print(a[0:2])#访问第1个到第2个数据。
    print(a[1:4])#访问第2个到第4个数据

    输出

    [1, 2]
    [2, 3, 4]

    这里要注意,两个数字之间是冒号,a[m:n]指的是访问从[m,n),前闭后开区间的数据。所以a[1:4]访问的是下标[1,4),也就是第2到第4个数据。(下标为4的第5个数据没有访问到)

     3、list类的方法

    (1)append:在列表最后追加元素

    a=[1,2,3,4,5]
    print(a)
    a.append(6)
    print(a)

    输出

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

    (2) clear:删除所有元素

    a=[1,2,3,4,5]
    print(a)
    a.clear()
    print(a)

    输出

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

    (3) copy:复制得到一个一模一样的列表

    a=[1,2,3,4,5]
    b=a.copy()
    print(b)

    输出

    [1, 2, 3, 4, 5]

    这里要注意与b=a的区别。b=a只是把a的地址给b了,修改b还是等于修改a。

    注意下面两个代码的区别

    a=[1,2,3,4,5]
    print(a)#初始的a
    b=a.copy()
    b.clear()#将b清空
    print(a)#把b清空后的a
    print(b)#把b清空后的b

    输出

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

    把b=a.copy改成b=a

    a=[1,2,3,4,5]
    print(a)#初始的a
    b=a
    b.clear()#将b清空
    print(a)#把b清空后的a
    print(b)#把b清空后的b

    输出

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

    这点跟C语言一模一样。。。用的时候一定要注意。

    (4)count(self, value):统计某个值输出的次数

    a=[1,2,3,3,4,5]
    print(a.count(1))
    print(a.count(3))
    print(a.count(6))

    输出

    1
    2
    0

    当然,这里不一定是数字,

    a=['I Love You','I Love Albert','I Love YZP','I Love You']
    print(a.count('I Love You'))

    输出

    2

    (5)extend(self, iterable):在后面追加一个列表

    a=[1,2,3,4,5]
    b=[6,7,8,9]
    a.extend(b)
    print(a)

    输出

    [1, 2, 3, 4, 5, 6, 7, 8, 9]

    (6)index(self, value, start=None, stop=None),从start与end之间查找value的索引值。默认从列表的全部查找。

    a=[1,2,3,4,5,6,7,8,9]
    print(a.index(7))
    print(a.index(7,0,7))
    print(a.index(7,0,6))

    输出

    6
    Traceback (most recent call last):
    6
      File "C:/Users/admin/PycharmProjects/temp.py", line 5, in <module>
        print(a.index(7,0,6))
    ValueError: 7 is not in list

    注意:[start,end)也是前闭后开区间。

    如果找不到会报错ValueError

    (7)insert(self, index, p_object):在索引index后插入一个值p_object

    a=[1,2,3,4,5,6,7,8,9]
    a.insert(6,7)
    print(a)

    输出

    [1, 2, 3, 4, 5, 6, 7, 7, 8, 9]

    (8)pop(self, index=None):删除索引为index的值,默认删除最后一个。

    a=[1,2,3,4,5,6,7,8,9]
    print(a)
    a.pop()
    print(a)
    a.pop(0)
    print(a)

    输出

    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8]
    [2, 3, 4, 5, 6, 7, 8]

    (9) remove(self, value):删除列表中值为value的元素

    a=[1,2,3,4,5,6,7,8,9]
    a.remove(7)
    print(a)

    输出

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

    注意,如果列表中有多个值为value的元素,它只删除第一个。

    (10)reverse(self):列表反转

    a=[1,2,3,4,5,6,7,8,9]
    a.reverse()
    print(a)

    输出

    [9, 8, 7, 6, 5, 4, 3, 2, 1]

    (11)sort(self, key=None, reverse=False):给列表排序key是表示按照某个规则排序,reverse是选择升序还是降序,默认升序。

    def Sec(a):
        return a[1]
    a=[[1,2],[4,3],[3,1]]
    a.sort(key=Sec,reverse=True)
    print(a)

    输出

    [[4, 3], [1, 2], [3, 1]]

    代表按照列表中每个元素的第二个元素降序。Sec函数就是返回第二个元素的值。

    list内部的方法就这么多了。

    第二个就是tuple(元组)

    tuple其实跟list差不多,但tuple的内部元素初始化后不能修改。(可以再重新初始化)

    a=(1,2,3,4,5)
    print(a)
    a=(6,7,8,9,0)#重新初始化元组
    print(a)
    
    a[0]=9#试图修改元组里面的元素

    输出

    (1, 2, 3, 4, 5)
    (6, 7, 8, 9, 0)

    但又报错

    Traceback (most recent call last):
      File "C:/Users/admin/PycharmProjects/temp.py", line 6, in <module>
        a[0]=9#试图修改元组里面的元素
    TypeError: 'tuple' object does not support item assignment

    谨记:元组元素初始化后不能修改

    元组的方法

    (1)  count(self, value):统计value的数目,用法跟list一样

    (2)index(self, value, start=None, stop=None),用法同list

  • 相关阅读:
    html input在标签内设置禁止输入空格
    JS判断json是否为空
    python常见问题集锦
    Node.js入门教程合集
    Vue入门教程合集
    将博客搬至CSDN
    Python 使用PyInstaller打包发布
    VSCode开发Python
    Python 验证码解析
    IntelliJ IDEA常见问题及使用技巧(持续更新)
  • 原文地址:https://www.cnblogs.com/albert-yzp/p/10068395.html
Copyright © 2020-2023  润新知