一.基础数据类型的补充

    元组:

      如果元组中只有一个数据,且没有逗号,则该‘元组’数据类型与里面的数据类型一致

    列表:

      列表之间可加不可减,可跟数字相乘

        l1=['wang','rui']

        l2=['chen']

        l3=l1+l2

        print(l3)

    将列表中索引为奇数的元素,全部删除:

      l1=[11,22,33,44,55,66,77,88]
      l2=[]
      (1)del l1[1::2]
         print(l1)
      (2)for i in l1:
       if i % 2 ==1:
      l2.append(i)
           l1=l2
        print(l1)
      (3)for i in range(len(l1)-1,-1,-1):
        if i % 2==1:
       l1.pop(i)
            print(l1)
  在循环一个列表时,如果对列表中的某些元素进行删除,
  那么此元素后面的所有元素就会向前进一位,他们的索引就会发生变化。
  在循环一个列表时,最好不要对此列表进行改变大小(增删)的操作。
  字典:
    fromkeys():创建一个新的字典  只改变key,不改变values
    dic1 = dict.fromkeys([1,2,3],'alex')
    print(dic1)
  面试题:创建字典的方式
    1,
    dic = {'name':'alex'}
    2,
     dic = dict({'name':'alex'})
     print(dic)
    3, fromkeys()   陷阱:
    dic1=dict.fromkeys([1,2,3],[])
    print(dic1)
    dic1[1].append(666)
    print(dic1)
    print(id(dic1[1]))=print(id(dic1[2]))=print(id(dic1[3])) 二、集合set
  set:
    集合要求里面的元素必须是不可变的数据类型,但是集合本身是可变的数据类型
    集合里面的元素不重复,无序。
    用途:去重、关系测试   list去重
    l1=[1,2,3,4,1,1,2,3]
    set1=set(l1)
    print(set1)   集合的增删:
    set1={'yang','wang',1,2,3}
    set1.add('zhang')  增
    print(set1)  
    set1.update('abc')  迭代增加
    print(set1)
    set1.remove(1)  删 元素
    print(set1)
    set1.pop()    随机
    print(set1)
    set1.clear()    清空
    print(set1)
    del set1    删除
    print(set1)   关系测试:
    set1={1,2,3,4,5}
    set2={1,2,3,6,7}
    print(set1&set2)  交集
    print(set1.intersection(set2))
    print(set1|set2)  并集
    print(set1.union(set2))
    print(set1^set2)  反交集
    print(set1.symmetric_difference(set2))
    print(set1-set2)  差集
    print(set2.difference(set1))     set3={1,2,3}
    set4={1,2,3,4,5}
    print(set3<set4)  子集
    print(set3.issubset(set4))
    print(set3>set4)  超集
    print(set3.issuperset(set4)
    set1={1,2,3}
    set2=frozenset(set1)  #冻
    print(set2)
    frozenset 不可变的数据类型 三、深浅copy    浅copy:
    l1=[1,2,3,4,[22,1]]
    l2=l1.copy()
    l1.append(999)
    print(l2)
    l1[-1].append(999)
    print(l2)    深copy:
    import copy
    l1=[2,3,4,5,[7,8]]
    l2=copy.deepcopy(l1)
    print(l2)
    l1[-1].append(666)
    print(l2)   应用场景:
    深copy:完全独立的copy一份数据,与原数据无关系。
    浅copy:如果一份数据,第二层开始,你想与原数据进行共用。   面试题:
    切片属于浅copy
 

《Python》 基础数据类型补充和深浅copy的更多相关文章

  1. Python基础数据类型补充及深浅拷贝

    本节主要内容:1. 基础数据类型补充2. set集合3. 深浅拷贝主要内容:一. 基础数据类型补充首先关于int和str在之前的学习中已经讲了80%以上了. 所以剩下的自己看一看就可以了.我们补充给一 ...

  2. python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝

    1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...

  3. python基础数据类型补充

    python_day_7 一. 今日主要内容: 1. 补充基础数据类型的相关知识点 str. join() 把列表变成字符串 列表不能再循环的时候删除. 因为索引会跟着改变 字典也不能直接循环删除.把 ...

  4. Python 基础之函数、深浅copy,set及练习

    三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(not)的条件判断,在Python 2.4以上才有了三元操作. 语法格式: X if C else Y 有了三元表达式 ...

  5. 基本数据类型补充,深浅copy

    #str s=' ' #只能是以至少一个空格组成的字符串(全空格) print(s.isspace()) #tuple 当元组只有一个元素组成,并没有",",则该元素是什么数据类型 ...

  6. Python——基础数据类型(补充)

    1.基础数据类型汇总补充 (1)小数据池:   为了节省空间,数字和字符串有,其他的没有[了解]   数字:-5---256之间的数字共用一个内存地址 #(1)i1 = i2 id(i1) == id ...

  7. python基础数据类型补充以及编码的进阶

    一.基本数据类型的补充循环列表改变列表大小的问题#请把列表中索引为基数的元素写出l1=[1,2,3,4,5,6]for i in l1: if i%2!=0: print(i)结果:135二:基本数据 ...

  8. python之数据类型补充、集合、深浅copy

    一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址 ...

  9. 基础数据类型补充 set集合 深浅拷贝

    一.基础数据类型补充 1. "拼接字符串".join(可迭代对象) 可迭代对象为列表时,输出列表元素与拼接字符串的拼接 li = ['张三', '李四', '王五', '赵四'] ...

随机推荐

  1. springboot整合mybatis将sql打印到日志(转)

    在前台请求数据的时候,sql语句一直都是打印到控制台的,有一个想法就是想让它打印到日志里,该如何做呢? 见下面的mybatis配置文件: <?xml version="1.0" ...

  2. 联想笔记本thinkpad按F2不能直接重命名

    联想笔记本thinkpad按F2不能直接重命名,而是Fn+F2. 解决: 按一下Fn+Esc(一般在左上角)

  3. rg.apache.ibatis.binding.BindingException: Mapper method 'com.dao.Cameao.getOnlineDayRation attempted to return null from a method with a primitive return type (float)

    本文为博主原创,未经允许不得转载: 异常展示如下: org.apache.ibatis.binding.BindingException: Mapper method 'com.dao.Cameao. ...

  4. 解决 mininet gave up after 3 retries 问题

    解决 mininet gave up after 3 retries 问题 在通过mn启动mininet的时候遇到了如下问题: *** Creating network *** Adding cont ...

  5. UVa 11729 突击战

    https://vjudge.net/problem/UVA-11729 题意:有n个部下,每个部下需要完成一项任务.第i个部下需要你话B分钟交代任务,然后立刻执行J分钟完成任务.安排交代任务顺序并计 ...

  6. UOJ【UR #12】实验室外的攻防战

    题意: 给出一个排列$A$,问是否能够经过以下若干次变换变为排列$B$ 变换:若${A_i> A_i+1}$,可以${swap(A_i,A_i+1)}$ 考虑一个数字从A排列到B排列连出来的路径 ...

  7. MongoDB(课时18 修改器)

    3.4.3.2 修改器(原子操作) 对MongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含数组),所以在MongoDB在设计的时候就提供有一系列的修改器的应用,那么像之前使用的“$ ...

  8. [ogre]ogre::Animation

    参考:http://blog.csdn.net/leonwei/article/details/5819248 http://blog.csdn.net/debugconsole/article/de ...

  9. c++ primer plus 第四章 课后题答案

    #include<iostream> #include<string> using namespace std; int main() { string first_name; ...

  10. Codeforces D - High Load

    D - High Load 因为要出口节点距离最小,所以除了根节点(根节点连接k个儿子)其他节点的儿子只能有一个,其他情况下的距离都比这个长,因为如果不是这样,那么根节点连接的子树数量就小与k,那么每 ...