zoukankan      html  css  js  c++  java
  • 【Finish】Python Day 7

    # 昨日回顾
    # 小数据池:
    # int -5^256
    # str 带有特殊字符 或者 *数字>20,则开辟新内存地址
    #
    # ASCII : 8位 1个字节 表示一个字符
    # Unicode:32位,4个字节 表示一个字符
    # UTF-8:英文 8位1个字节;中文 24位3个字节
    # GBK:英文 8位1个字节;中文 16位2个字节

    # 今日
    # 1、基础数据类型汇总补充

    # str
    # s = ' '
    # print(s.isspace()) # True判断字符串中带空格,则返回True,否则 则返回 False

    # int

    # list
    lst = [11,22,33,44,55]
    # for i in lst:
    # del lst[lst.index(i)]
    #
    # for i in range(len(lst)): # IndexError: list assignment index out of range
    # del lst[i]

    # dict !!!不能再字典循环的时候删除字典,可以新建一个字典复制
    # 可以使用将带有k的key放到一个列表,新建循坏删除带有上述列表key中的值
    dic = {'k1':'v1','k2':'v2','a3':'v3'}
    # dic2 = {}
    # for i in dic.keys():
    # if 'k' not in i:
    # dic2[i] = dic[i]
    # print(i,dic[i])

    # dic = dict.fromkeys([1,2,3],'春哥')
    # print(dic) # {1: '春哥', 2: '春哥', 3: '春哥'} 将列表中每一个数据转换成字典的key,默认赋值

    # 转换成bool:(),'',[],{},set()

    # tupe 元祖:如果元祖里面不带逗号,改数据是什么类型就是什么类型,需要加逗号
    # tu1 = ([1])
    # tu2 = ([1],)
    # print(type(tu1),type(tu2)) #<class 'list'> <class 'tuple'>

    # 2、集合set
    # # 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不可重复 {}
    #
    # # set1 = set({1,2,3}) # {1, 2, 3}
    # # set1 = set({1,2,3,{1,2,3}}) # TypeError: unhashable type: 'set'
    #
    # set1 = {'alex','wusir','ritian','egon','barry'}
    #
    # #增:
    # # set1.add('女神') # 增 无序 {'wusir', 'ritian', '女神', 'egon', 'alex', 'barry'}
    # # set1.update('abc') # {'ritian', 'a', 'wusir', 'barry', 'alex', 'egon', 'c', 'b'}
    #
    # # 删除:
    # # set1.pop() # 随机删除,返回随机 {'barry', 'egon', 'wusir', 'alex'}
    # # set1.remove('alex') # 按照元素删除,返回无序 {'ritian', 'barry', 'wusir', 'egon'}删除不存在的元素则报错
    # # set1.clear() # 清空集合 set()
    # # del set1 # 删除整个集合 NameError: name 'set1' is not defined
    #
    # # 改:不可变数据类型 无法修改
    #
    # # 查:
    # # for i in set1:
    # # print(i) # 随机输出
    #
    # set11 = {1,2,3,4,5}
    # set22 = {6,7,8,9,5}
    # # print(set11 & set22) # {5} 交集
    # # print(set11.intersection(set22))# {5} 交集
    #
    # # print(set11 | set22) # {1, 2, 3, 4, 5, 6, 7, 8, 9} 并集
    # # print(set11.union(set22)) # {1, 2, 3, 4, 5, 6, 7, 8, 9} 并集
    #
    # # print(set11 ^ set22) # {1, 2, 3, 4, 6, 7, 8, 9} 反交集
    # # print(set11.symmetric_difference(set22)) # {1, 2, 3, 4, 6, 7, 8, 9} 反交集
    #
    # # print(set11 - set22) # {1, 2, 3, 4} 只有set11独有的
    # # print(set11.difference(set22)) # {1, 2, 3, 4} 只有set11独有的
    #
    # set33 = {1,2,3}
    # set44 = {1,2,3,4,5,6}
    # # print(set33 < set44) # 判断set44是set33的子集 True
    # # print(set33.issubset(set44))# 判断set44是set33的子集 True
    #
    # # 去重
    # li = [1,2,33,33,2,1,4,5,6,6]
    # set66 = set(li) # {1, 2, 33, 4, 5, 6} 把列表转换成set集合,集合有去重功能
    # li = list(set66)
    # print(li) # [1, 2, 33, 4, 5, 6]
    #
    # # set是可变数据类型,下面将set变为不可变数据类型
    # s = frozenset('barry')
    # print(s,type(s)) # frozenset({'y', 'r', 'b', 'a'}) <class 'frozenset'>
    # for i in s:
    # print(i) # 可查询,不能增加/删除/更改,只读

    # 3、深浅copy
    # copy
    # l1 = [1,2,3]
    # l2 = l1.copy()
    # print(l1,l2) # [1, 2, 3] [1, 2, 3]
    # print(id(l1),id(l2)) # 4363156168 4363156552
    # l2.append('a')
    # print(l1,l2) #[1, 2, 3] [1, 2, 3, 'a']

    # l1 = [1,2,3]
    # l2 = l1.copy()
    # l1.append('a')
    # print(l1,l2) # [1, 2, 3, 'a'] [1, 2, 3]


    # l1 = [1,2,[4,5,6],3]
    # l2 = l1.copy()
    # print(l1,id(l1)) # [1, 2, [4, 5, 6], 3] 4363156552
    # print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363154760
    # l1.append('0')
    # print(l1,id(l1)) # [1, 2, [4, 5, 6], 3, '0'] 4363156552
    # print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363154760

    # l1 = [1,2,[4,5,6],3]
    # l2 = l1.copy()
    # l1[2].append('a')
    # print(l1,id(l1)) # [1, 2, [4, 5, 6, 'a'], 3] 4363156552
    # print(l2,id(l2)) # [1, 2, [4, 5, 6, 'a'], 3] 4363154760

    # l1 = [1,2,[4,5,6],3]
    # l2 = l1.copy()
    # l2[2].append('a')
    # print(l1,id(l1)) # [1, 2, [4, 5, 6, 'a'], 3] 4363156552
    # print(l2,id(l2)) # [1, 2, [4, 5, 6, 'a'], 3] 4363154760

    # 总结:浅拷贝不管多么复杂的数据结构、浅拷贝都只会copy一层。

    import copy
    # l1 = [1,2,[4,5,6],3]
    # l2 = copy.deepcopy(l1)
    # print(l1,id(l1)) # [1, 2, [4, 5, 6], 3] 4363154760
    # print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363156616
    # l1[2].append('a')
    # print(l1,id(l1)) # [1, 2, [4, 5, 6, 'a'], 3] 4363154760
    # print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363156616

    # l1 = [1,[1],2,3,4]
    # l2 = l1[:]
    # l1[1].append('2')
    # print(l1,id(l1)) # [1, [1, '2'], 2, 3, 4] 4363154760
    # print(l2,id(l2)) # [1, [1, '2'], 2, 3, 4] 4363156616
    # print(l1[1] is l2[1]) # True


    # 总结:深拷贝不管数据结构多么复杂,相互都不影响







  • 相关阅读:
    SharedPreferences
    Handler
    Gallery 和ImageSwitcher
    poj 1077 Eight (BFS)
    HDU 1208 Pascal's Travels( 记忆化搜索)
    HDU 1619 Unidirectional TSP (dp,dfs)
    HDU 3683 Gomoku (枚举+BFS)
    HDU 3647 Tetris (暴力DFS)
    poj 1020 Anniversary Cake (DFS)
    poj 1375 Intervals(解析几何 过圆外一点求与圆的切线)
  • 原文地址:https://www.cnblogs.com/wonderful0714/p/9338296.html
Copyright © 2011-2022 走看看