zoukankan      html  css  js  c++  java
  • python 7

    一、数据类型的补充

    1.元组

    tu1 = ('大海') tu2 = ('大海',) print(tu1, type(tu1), tu2, type(tu2))

    大海 <class 'str'> ('大海',) <class 'tuple'>

    当元组中只有一个元素时,要加一个逗号,否则,元组的括号将被认为是数学中的小括号,不具有意义。

    2.列表

    s = [0, 111, 222, 333, 444, ] for i in range(len(s)): if i % 2 == 1: del s[i] print(s)

    [0, 222, 333]

    对列表进行for循环的时候,最好不要同时对列表进行操作,否则可能会影响之后for循环的规律。

    不过反向for循环就可以解决这一问题。

    3.字典

    同上,不要在对字典循环的同时对字典进行操作,否则会报错或者影响结果。

    dic = {'': '', '': ''}
    lis = list(dic)
    print(lis)
    ['', '']

    对字典直接执行list命令,可以将字典的keys转化为一个list,反过来就不行。

    二、set。(集合)

    set中,无重复元素,转化为set时自动去重,但是变为无序状态。

    set中不能存在可变元素,只有str, tuple, bool, int.

    1.增

    update 类似于列表的extend, 逐个添加最小元素. 不过是无序

    add 类似于列表的append. 不过是无序

    2.删

    remove 按元素删除

    pop 随机删除,有返回值

    clear 清空

    del 内存级别的删除

    3.查

    只能用for循环查询set中的元素

    4.各种集

    & intersection 交集

    | union 并集

    - difference 差集 :第一个set中有,第二个set中没的元素的。

    set1 = {1, 2, 3, 4} - {4, 5, 6, 7}
    print(set1)
    {1, 2, 3}

    ^ 反差集 symmetric_difference :两个set都不相交的元素。

    < 子集 issubset

    > 超集 issuperset

    三、深浅copy

    对于赋值运算来说,两个变量指向的都是同一内存地址对象,所以对象变了之后两个变量同时变化。

    浅copy:.copy()

    对于浅copy来说,只是创建了最外层的躯壳,内部的元素还是共用同一内存地址。

    所以若内部可变元素本身大小发生改变,两个变量同时改变。

    但是若删减内部元素,就不会发生上述情况。

    深copy:

    import copy

    copy.deepcopy()

    深copy之后,除了小数据池内地址相同,其余都不同地址。

    切片为浅copy

  • 相关阅读:
    SQL语句中日期相减注意事项
    WinRAR打压缩的几个命令
    SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
    某一列选最大值 其他内容不同要求随机选择的情况下去除重复行的方法
    Datastage里Aggregator的一些注意事项
    几个网络流行词的翻译
    找工作的网站
    WPF版连连看,swing版俄罗斯方块源码
    mirrortankWar
    Delphi著名皮肤控件库横向对比。
  • 原文地址:https://www.cnblogs.com/leonraw/p/9003207.html
Copyright © 2011-2022 走看看