• Day 08 可变与不可变对象/列表与字典内置方法


    可变对象与不可变对象

    可变对象

    对象指向的内存中的值会改变,当更改这个变量的时候,还是指向原来内存中的值,并且在原来的内存值进行原地修改,并没有开辟新的内存。

    lis = [1]
    print(id(lis)) # 167724168
    lis.append(2)
    print(id(lis)) # 167724168
    

    不可变对象

    对象所指向的内存中的值不能被改变,当改变这个变量的时候,原来指向的内存中的值不变,变量不再指向原来的值,而是开辟一块新的内存,变量指向新的内存。

    x = 10 # 定义变量就会开辟一块新的内存空间存放变量
    print(id(x)) # 1724673792
    x = x + 1
    print(id(x)) # 1733455648 x的id发生了变化,既x原来指向的内存中的值不变,x不再指向原来的值,而是开辟出一块新的内存, x指向新的内存
    

    列表的内置方法

    lis = [1, 2, 3]
    
    # 索引取值/索引修改值
    lis = [0]
    print(lis) # 1
    
    # 索引切片
    print(lis[0:2]) # 1 2
    
    #成员运算in / not in
    print(1 in lis) # True
    print(4 not in lis) # True
    
    # for循环
    for i in lis:
        print(1)
    
    # 长度len
    print(len(lis)) # 3
    
    # .append() 追加值
    lis.append(4) # [1, 2, 3, 4]
    
    # .sort() 排序
    lis = [3, 2, 1]
    lis.sort()
    print lis # [1, 2, 3]
    
    # .reverse() 反转
    lis.reverse()
    print(lis) # [3, 2, 1]
    
    # .index() 获取元素索引
    print(lis.index(2)) # 1
    
    # .clear() 清空列表
    lis.clear()
    print(lis) # []
    
    # .copy() 复制
    lis1 = lis.copy()
    print(lis1) # [1, 2, 3]
    
    # .extend() 扩展列表
    lis1 = [4, 5, 6]
    lis.extend(lis1)
    print(lis) # [1, 2, 3, 4, 5, 6]
    
    # .remove 移除
    lis.remove(3)
    print(lis) # [1,2]
    
    # .insert() 按照索引插入值(在前插入)
    lis.insert(0, -1)
    print(lis) # [-1, 1, 2, 3] 
    

    字典内置方法

    dic = {'a': 1, 'b': 2, 'c': 3}
    
    # 按key取值/按key修改值/按key增加值
    print(dic['a']) # 1
    
    dic['a'] = 0
    print(dic) # {'a': 0, 'b': 2, 'c': 3}
    
    dic['d'] = 4
    print(dic) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    # 成员运算(比较的是key)
    print('a' in dic) # True
    print('e' not in dic) # True
    
    # for循环(对key循环)
    for i in dic:
        print(i) # a b c
        
    # .keys()/.value()/.items() -- 返回列表
    print(dic.keys()) # 所有的key
    print(dic.values()) # 所有的值
    print(dic.items()) # 所有的键值对
    
    # get() 取值
    print(dic.get('a', 0)) # 找到了就返会a在字典中对应的值, 没找到就返回None, 如果给定了0, 没找到就返回0
    
    # .update() 扩展字典
    dic1 = {'d': 4}
    dic.update(dic1) 
    print(dic) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    # .setdefault() 有则不变,无则增加
    dic.setdefault('a', 2)
    print(dic) # {'a': 1, 'b': 2, 'c': 3}
    dic.setdefault('d', 4)
    print(dic) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    
  • 相关阅读:
    ES6之模块化
    ES6之展开运算符
    ES6之解构赋值
    ES6之对象的语法糖
    ES6之函数的语法糖
    ES6之模板字符串
    Exchanger详解
    DNS解析过程
    CyclicBarrier详解
    ConuntDownLatch详解
  • 原文地址:https://www.cnblogs.com/bigb/p/11436590.html
Copyright © 2020-2023  润新知