zoukankan      html  css  js  c++  java
  • Python基本数据类型之容器(列表、元组、集合、字典)

    Python基础数据类型可以用一张图表示,这里只讲列表、元组、集合、字典四种。

    1、列表

    dir()用来查询一个类或者对象所有属性,可以查列表支持的功能:

    1)创建列表:

    >>> a=[1,2,3,4,5,6]
    >>> a
    [1, 2, 3, 4, 5, 6]
    >>> type(a)
    <class 'list'>

    2)访问列表与切片:

    >>> print(a)
    [1, 2, 3, 4, 5, 6]
    >>> a[0]
    1
    >>> a[0:3]
    [1, 2, 3]
    >>> a[:-2]
    [1, 2, 3, 4]
    >>> a[0]=999
    >>> a
    [999, 2, 3, 4, 5, 6]

    3)更新列表

    直接加,把两个列表合并成一个。

    >>> b=['a', 'b','c']
    >>> b
    ['a', 'b', 'c']
    >>> c=a+b
    >>> c
    [999, 2, 3, 4, 5, 6, 'a', 'b', 'c']
    >>> a.append([11,22])
    >>> a
    [999, 2, 3, 4, 5, 6, [11, 22]]

    可见append()的参数被视为对象,将所有的参数视为一个列表元素插入到列表尾部。

    如果把两个列表连接为1个列表,可以使用extend。extend()会将传入的参数视为列表,并将该列表的每个元素一一逐个插入到原列表尾部。

    >>> a
    [999, 2, 3, 4, 5, 6]
    >>> a.extend(b)
    >>> a
    [999, 2, 3, 4, 5, 6, 'a', 'b', 'c']
    4)插入数据
    >>> a=[1,2,3,4]
    >>> a
    [1, 2, 3, 4]
    >>> a.insert(2,'a')
    >>> a
    [1, 2, 'a', 3, 4]
    >>> a.insert(2,['c',"hello"])
    >>> a
    [1, 2, ['c', 'hello'], 'a', 3, 4]

    2、元组

    元组和列表类似,但是元组的元素不能添加,不能删除,不能修改,只能查询。

    列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义。

    >>> t=(1)
    >>> t
    1
    >>> type(t)
    <class 'int'>
    >>> t2=(1,)
    >>> t2
    (1,)
    >>> type(t2)
    <class 'tuple'>

    元组中的元素不能改变,但是可以组合元祖为新的元组。

    >>> a=(1,2)
    >>> b=('c','d')
    >>> c=a+b
    >>> c
    (1, 2, 'c', 'd')

    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组.

    >>> b
    ('c', 'd')
    >>> del b
    >>> b
    Traceback (most recent call last):
      File "<pyshell#197>", line 1, in <module>
        b
    NameError: name 'b' is not defined

    3、集合

    集合(set)是一个无序的不重复元素序列。集合是无序的存储结构,集合内的数据没有先后关系。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    >>> a={1,2}
    >>> a
    {1, 2}
    >>> type(a)
    <class 'set'>
    >>> b={}
    >>> type(b)
    <class 'dict'>

    将元素 x 添加到集合 a 中,如果元素已存在,则不进行任何操作。

    >>> a
    {1, 2}
    >>> a.add(1)
    >>> a
    {1, 2}

    集合支持交集、并集、补集、子集、超集计算。

    >>> a={1,2,3}
    >>> b={1,2,4,5}
    >>> a & b
    {1, 2}
    >>> a|b
    {1, 2, 3, 4, 5}
    >>> a-b
    {3}
    >>>
    >>> a
    {1, 2, 3}
    >>> c
    {1, 2}
    >>> c<a
    True
    >>> a>c
    True

    4、字典

    Python字典是另一种可变容器模型,且可存储任意类型对象。字典由键和其对应的值构成的键—值对组成,基本语法为:

    >>> d={'A':10, 'B':11}
    >>> d
    {'A': 10, 'B': 11}
    >>> type(d)
    <class 'dict'>

    字典的增删改查:

    >>> a
    {0: 1, 'b': 2, 'name': 'Jonh'}
    >>> a.pop(0)
    1
    >>> a
    {'b': 2, 'name': 'Jonh'}
    >>> a.pop("name")
    'Jonh'
    >>> a
    {'b': 2}

    字典的特点:

    1)key不能重复,否则第二个值覆盖第一个

    >>> d={1:1,1:2, 2:3, 3:4}
    >>> d
    {1: 2, 2: 3, 3: 4}

    2)key不可变,值可变。键可以用数、字符串、元组充当,但不能是列表。

    >>> a={[a]:1}
    Traceback (most recent call last):
      File "<pyshell#325>", line 1, in <module>
        a={[a]:1}
    TypeError: unhashable type: 'list'
    >>> a={"dfaf":1}
    >>> a
    >>> a={"dfaf":1}
    >>> a
    {'dfaf': 1}
    >>> b={(1):2}
    >>> b
    {1: 2}
    >>> type(b)
    <class 'dict'>
  • 相关阅读:
    PAT 甲级 1027 Colors in Mars
    PAT 甲级 1026 Table Tennis(模拟)
    PAT 甲级 1025 PAT Ranking
    PAT 甲级 1024 Palindromic Number
    PAT 甲级 1023 Have Fun with Numbers
    PAT 甲级 1021 Deepest Root (并查集,树的遍历)
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯 算法提高 抽卡游戏
    Java实现 蓝桥杯 算法提高 抽卡游戏
  • 原文地址:https://www.cnblogs.com/pingwen/p/12634614.html
Copyright © 2011-2022 走看看