• python 数据类型 datatype


     python  数据类型 datatype

    1. 列表list

    2. 元组tuple

    3. 集合set

    4. 字典dictionary

    5. 字符串string


    一、列表list

    list :python的一种数据类型。是可变的,有序的对象。可以删除和增加元素。

    1 列表常用的几种方法

    list.append(x)   

    list.extend(iterable)

    >>> ls=[1,2,'a',3]
    >>> ls.append('b')
    >>> ls
    [1, 2, 'a', 3, 'b']
    >>> t=(3,7)
    >>> ls.extend(t)
    >>> ls
    [1, 2, 'a', 3, 'b', 3, 7]
    >>> 

    list.remove(x)     从列表中删除x 元素

    list.pop(i)            返回删除的元素的值,i为索引号 ,如果不指定参数,默认从列表最后开始删除元素

    list.insert(i,x)       指定在某个索引号插入一个元素x

    list.count(x)       计算x 元素在列表中出现的次数

    list.index(x)        返回x 元素在列表中出现的索引号,如果列表中有多个x, 返回第一个

    list.copy()    复制这个列表,会产生新的对象

    >>> a=ls.copy()
    >>> a
    [2, 'a', 3, 7, 3]
    >>> id(a)
    54370632
    >>> a.ppend('s')
    Traceback (most recent call last):
      File "<pyshell#22>", line 1, in <module>
        a.ppend('s')
    AttributeError: 'list' object has no attribute 'ppend'
    >>> a.append('s')
    >>> a
    [2, 'a', 3, 7, 3, 's']
    >>> ls
    [2, 'a', 3, 7, 3]
    >>> 
    View Code

    list.sort(key=None,reverse=False)          对列表进行排序  如果列表中有多个数据类型,直接调用sort() 会报错

    list.reverse()     反转列表

    2.操作

    • 切片
    • 索引
    • 取长度len()

    3.将列表当做stack 使用

    >>> stack=[4,5,6]
    >>> stack.append('a')
    >>> stack.append('b')
    >>> stack
    [4, 5, 6, 'a', 'b']
    >>> stack.pop()
    'b'
    >>> stack.pop()
    'a'
    >>> 

    4.将列表当做队列queue使用

    >>> queue=[4,5,6]
    >>> queue.append(7)
    >>> queue.append('u')
    >>> queue
    [4, 5, 6, 7, 'u']
    >>> queue.pop(0)
    4
    >>> queue.pop(0)
    5
    >>> queue
    [6, 7, 'u']
    >>> 

    列表解析式list comprehension

    >>> ls=[i for i in range(6)]
    >>> ls
    [0, 1, 2, 3, 4, 5]

    del statement

    del 语句可用来删除列表中某个元素,与pop() 返回一个value 不同,pop 可用来删除slice  ,

    del 也可以用来删除整个变量,当你再次引用这个名字,会引发 NameError

    for example

    >>> ls=[3.5,'df',478,'dfd']
    >>> del ls[0]
    >>> ls
    ['df', 478, 'dfd']
    >>> del ls[0:2]
    >>> del
    SyntaxError: invalid syntax
    >>> ls
    ['dfd']
    >>> del ls
    >>> ls
    Traceback (most recent call last):
      File "<pyshell#62>", line 1, in <module>
        ls
    NameError: name 'ls' is not defined
    >>> 

    二、tuple and sequence 

      字符串,列表,都是序列数据类型,元组也是,都可以进行切片,索引

      元组是不可变的对象

      当定义一个元组,只有一个元素,要使用逗号commas,定义空元组时要用()

    >>> t=1,2,3
    >>> type(t)
    <class 'tuple'>
    >>> t[0]
    1
    >>> t[0]='asd'
    Traceback (most recent call last):
      File "<pyshell#66>", line 1, in <module>
        t[0]='asd'
    TypeError: 'tuple' object does not support item assignment
    >>> #but they can contain mutable object
    >>> v=([1,2,3],[4,53])
    >>> v[0].append('a')
    >>> v
    ([1, 2, 3, 'a'], [4, 53])
    >>> 
    View Code
    >>> t
    (1, 2, 3)
    >>> x,y,z=t
    >>> x
    1
    >>> y
    2
    >>> z
    3
    >>> v2=(3,)
    >>> v2=()
    >>> type(v2)
    <class 'tuple'>
    >>> 

     三、集合set

     A set is an unordered collection with no duplicate elements.

    set 是一种无序的集合,集合里的元素不能重复

    集合的特点:

    1. 互异性
    2. 无序性  :没有索引
    3. 确定性

    在python 中,列表,字典不可放入到集合中

    创建集合:创建空集合不能用{} ,要用set()   ,{}会创建一个空字典

    #创建集合
    set1=set() #创建空集合
    set1={'a','b','c',(1,2)}   

    定义不可变集合:

    f_set_test=frozenset(set_test)

    >>> f_set_test

    frozenset({'l', 'e', 'h', 'o'})

    集合关系运算

    set2={1,2,3,4,5,6,7,8}
    set3={3,4,5,6,7,8,9,10}
    set2 & set3
    print(set2 & set3) 
    print(set2 | set3)
    print(set2 - set3)

    in  

    not in 

    ^ 对称差集

    集合方法

    向集合添加元素:

    View Code

    从集合删除元素:

    View Code

    remove方法如果删除的元素在集合里没有会报错,而discard 不会,返回None。pop()方法,括号里不能有参数,但是是随机删除里面的值。

    difference   求差集

    union   求并集

    intersection求交集

    isdisjoint  判断有无共同集合  ,返回布尔值

    issubset   判断是不是它的子集  返回布尔值

    issuperset判断是不是包含它    返回布尔值

    View Code

    清除集合

    clear 方法

    set1.clear()

    四、dict 字典(无序)

    字典是按键-值的关系,一个键对应一个值,键必须是不可变的数据类型。

    初始化定义字典:

    dic={}

     常用操作

    • 增加一个key-value      D[key]=value
    • 判断一个key在不在这个字典里       in 关键字
    • 根据key取值    dic[key]
    • 更新字典  update  D.update(D2)
    • 删除字典的key   pop(key)
    • 遍历字典    for loop
    • 得到所有value   D.values()
    • 得到所有key  D.keys()
    • 得到所有key-value  D.items()
    >>> d={1:'a',2:'b',3:'c'}
    >>> d.items()
    dict_items([(1, 'a'), (2, 'b'), (3, 'c')])
    >>> a=d.items()
    >>> type(a)
    <class 'dict_items'>
    >>> list(a)
    [(1, 'a'), (2, 'b'), (3, 'c')]
    >>> b=list(a)
    >>> b
    [(1, 'a'), (2, 'b'), (3, 'c')]
    >>> type(b[0])
    <class 'tuple'>
    >>> d.keys()
    dict_keys([1, 2, 3])
    >>> c=list(d.keys())
    >>> c
    [1, 2, 3]
    >>> for i in c:
        print(i)
    
        
    1
    2
    3
    >>> d.values()
    dict_values(['a', 'b', 'c'])
    >>> for key,value in d.items()
    SyntaxError: invalid syntax
    >>> for key,value in d.items():
        print(key,value)
    View Code

    把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:

    如果key不存在,就会报错

    可以用in 来判断,或者get方法

    get方法

    如果不存在会返回NOne,注意:返回None的时候Python的交互式命令行不显示结果。不能通过get来改变字典的value,这个方法只能是获得值

    要删除一个key,用pop(key)方法,对应的value也会从dict中删除

    和list比较,dict有以下几个特点:

    1. 查找和插入的速度极快,不会随着key的增加而变慢;
    2. 需要占用大量的内存,内存浪费多。

    而list相反:

    1. 查找和插入的时间随着元素的增加而增加;
    2. 占用空间小,浪费内存很少。

    所以,dict是用空间来换取时间的一种方法

  • 相关阅读:
    微信小程序 生命周期
    ftp uploadFileAction(重要)
    java FTP 上传下载删除文件
    httpsession
    db2 blob EMPTY_BLOB()
    java blob
    java session getCreationTime()
    eclipse 查看源代码
    java file类
    Vue.js 和 MVVM 小细节
  • 原文地址:https://www.cnblogs.com/yuyang26/p/6963993.html
Copyright © 2020-2023  润新知