可变对象与不可变对象

可变对象

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

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}

Day 08 可变与不可变对象/列表与字典内置方法的更多相关文章

  1. python基础-列表List及内置方法

    数据类型之列表-List 用途:用于存一个或多个不同类型的值 定义:通过中括号存值,每个值之间通过逗号进行分隔 l1 = [1,'a',3,'b'] 特性:有序.可变.存多个值的数据类型 常用方法: ...

  2. day08整理(周总结\列表\字典内置方法)

    一.周总结 一 计算机基础之编程 1.什么是编程语言 编程是人与计算机交流的介质 2.什么是编程 通过编程语言写一堆文件 3,为什么编程 取代劳动力,帮人类干活 二 计算机组成 1.CPU 控制器 控 ...

  3. python基础——4(数字、字符串、列表类型的内置方法介绍)

    目录 一.可变与不可变类型 二.数字类型 三.字符串类型 四.列表类型 一.可变与不可变类型 可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型 不可变类型:值改变,id也跟着改变,证明产 ...

  4. s14 第4天 关于python3.0编码 函数式编程 装饰器 列表生成式 生成器 内置方法

    python3 编码默认为unicode,unicode和utf-8都是默认支持中文的. 如果要python3的编码改为utf-8,则或者在一开始就声明全局使用utf-8 #_*_coding:utf ...

  5. python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍

    对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 1.int 首先,我们来查看下int包含了哪些函数 # python3.x dir(int) # ['__a ...

  6. python-面向对象速查表-内置方法-内置函数-内置属性(只整理了部分内容)

    今日临时总结的内容,可能还有些不正确的地方,初步当做个速查表吧. 类的内置函数(继承object的,自己重写) 内置函数 执行时机 注意点 调用案例 __init__ 实例化对象时 不允许写返回值(r ...

  7. 面对对象4 Mixins机制 内置方法 反射 异常

    Mixins机制 为什么要有:子类继承父类的时候,可能会碰到需要继承多个父类的情况,那么继承关系也分主类和辅类,既保持主类的功能,也有辅类的功能. 命名方式,我们需要将主类和辅类区分开来,python ...

  8. 列表&元组的内置方法

    标红为元组可以使用

  9. day007 列表类型、元祖类型、 字典类型、 集合类型的内置方法

    目录 列表数据类型的内置方法 作用 定义方式 优先掌握的方法 需要掌握的方法 元祖类型的内置方法 作用 定义方式 优先掌握的方法(参考列表方法) 字典类型的内置方法 作用 定义方式 优先掌握的方法 需 ...

随机推荐

  1. PHP 在Swoole中使用双IoC容器实现无污染的依赖注入

    简介: 容器(container)技术(可以理解为全局的工厂方法), 已经是现代项目的标配. 基于容器, 可以进一步实现控制反转, 依赖注入. Laravel 的巨大成功就是构建在它非常强大的IoC容 ...

  2. 系统信息命令(uname、dmesg、df、hostname、free)

    uname 显示计算机及操作系统相关的信息,uname -a显示全部信息,uname -r内核的发行号,各种信息可以有单独的选项分别指出 [lixn@Fedora24 ~]$ uname -a Lin ...

  3. Python 函数知识点整理

  4. 数据类型转换&运算符

    基本数据类型注意事项 整型类型:long>int>short>byte java默认类型为int型 long a = 123 表示将int类型的数值赋给更大范围的long类型,当数据 ...

  5. goland学习-go常用命令使用

    goland学习-go常用命令使用 1.跨平台编译:env GOOS=linux GOARCH=amd64 go build 2.获取go第三方包:go get -u github.com/go-sq ...

  6. 关于springboot2.*版本无法加载静态资源

    前言 在学习springboot的过程中,发现无法引用静态资源.我使用的是springboot2.2.1版本. 追溯源码,终于解决.并记录下解决思路. 默认加载路径 首先得知道springboot默认 ...

  7. Install gitlab

    yum install -y curl policycoreutils-python openssh-server postfix wget wget https://mirrors.tuna.tsi ...

  8. 【控制系统数字仿真与CAD】实验三:离散相似法数字仿真

    一.实验目的 1. 了解离散相似法的基本原理 2. 掌握离散相似法仿真的基本过程 3. 应用离散相似法仿真非线性系统 4. MATLAB实现离散相似法的非线性系统仿真 5. 掌握SIMULINK仿真方 ...

  9. C#学习笔记03--循环和一维数组

    一.循环(重点) 什么时候用循环? 想让一段代码执行多次, 这段代码可能不一样但是一定有一个规律. 1.while 循环 格式:  while(循环条件) { 循环执行的代码; } 循环的机制:  当 ...

  10. 09-kubernetes StatefulSet

    目录 StatefulSet 简单测试 使用 StatefulSet 创建基础的PV StatefulSet 清单 StatefulSet 有状态应用副本集 无状态的, 更关注的是群体 有状态的, 更 ...