len、is、==、可变于不可变类型

a="asdfghjkl;‘iuygb"
b="小米"
c=[‘a‘,‘b‘,‘c‘]
d= {‘name‘:1,‘age‘:24}

# len统计字符或元素的个数

>>> print(len(a))
>>> print(a[2])
16
d
>>> print(len(b))
>>> print(b[1])
2
米
>>> print(len(c))
>>> print(c[2])
3
c
>>> print(len(d))
>>> print(d[‘name‘])
2
24

# is 和==的区别
# is:判断内存地址是否相等
# ==:判断值是否相等

a = 1
b = 1.0
>>> print(id(a))
>>> print(id(b))
1459716208
2994709930464
>>> print(a is b)
>>> print(a == b)
False
True

# 1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
# 2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)

#可变类型
>>> l1 = [1,2,3]
>>> print(id(l1))
>>> l1.append(4)
>>> print(id(l1))
1446146289160
1446146289160

>>> info = {‘name‘:‘小明‘, ‘age‘:25}
>>> print(id(info))
>>> print(info)
1446145409600
{‘name‘: ‘小明‘, ‘age‘: 25}
>>> info[‘name‘] = ‘小刚‘
>>> print(id(info))
>>> print(info)
1446145409600
{‘name‘: ‘小刚‘, ‘age‘: 25}

#不可变类型
>>> a=1
>>> print(id(a))
1459716208
>>> a=2
>>> print(id(a))
1459716240

  

原文地址:https://www.cnblogs.com/twoo/p/11648614.html

时间: 2024-10-01 07:56:20

len、is、==、可变于不可变类型的相关文章

while循环,布尔类型,可变or不可变,数字,字符串,列表,元组,字典

while 循环 '''1.什么是循环? 循环即重复的过程 2.为什么要有循环 3.while循环的语法(又称之为条件循环) while 条件: 代码1 代码2 代码3 .... ''' # 注意:下述形式的死循环,会造成cpu的占用率过高# i=1# while True:# i+=1 #打印1-10# n=1# while True:# if n <= 10: #n=10# print(n)# n+=1# else:# break #打印1-10:改进1# n=1# while True:#

[Guava学习笔记]Collections: 不可变集合, 新集合类型

不可变集合 不接受null值. 创建:ImmutableSet.copyOf(set); ImmutableMap.of(“a”, 1, “b”, 2); public static final ImmutableSet<Color> GOOGLE_COLORS = ImmutableSet.<Color>builder() .addAll(WEBSAFE_COLORS) .add(new Color(0, 191, 255)) .build(); 可以有序(如ImmutableS

通过char与varchar的区别,学习可变长的字符类型

转自http://www.uphtm.com/database/232.html 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 char (16)长度固定, 如'www.uphtm.com' 存储需要空间 14个字符 varchar(16) 可变长 如'www.uphtm.com' 需要存储空间 15字符, 从上面可以看得出来char 长度是固定

python —— 可变与不可变类型

可变与不可变类型对象 可变和不可变,本质上就是改变了里面的数据后,内存地址是否有改变 可变类型.不可hash 不可变类型,可hash 列表 字符串 字典 数字 集合 元组   不可变的集合 什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址. 可变对象,该对象所指向的内存中的值可以被改变.变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并

python可变和不可变类型

时长总结一下Python基础知识,动手写一写不容易忘记 * Python的数据类型可以分为可变与不可变类型两大类 可变类型:列表 ,字典 不可变类型:数值,字符,元组 * 对不可变类型进行赋值的时候其实是创建了一个新的不可变对象,并将指向原来不可变对象的变量指向这个新的不可变对象,这个时候原来的不可变对象就失去了指向它的变量 ,如果没有新的变量指向它的话,这个不可变对象就会被回收 eg: 1 i=1 2 i+=1 3 i 4 2 实际上此处的i+=1并不是真的在原来的int对象上进行加1,而是重

可变与不可变类型

1.可变与不可变类型 1)学python,一定要记住“一切皆为对象,一切皆为对象的引用”: 2)所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变: 3)可变数据类型:value值改变,id值不变:不可变数据类型:value值改变,id值也随之改变. 注:即id不变时,value可以改变则为可变数据类型,value不可以改变则为不可变数据类型. 4)不可变(immutable):int.字符串(string).float.(数值型number).元组(tuple) i = 3 (被

python 深拷贝和浅拷贝之可变和不可变对象总结

了解深拷贝和浅拷贝之前先要理解可变与不可变对象 python只允许使用引用传递,有可变对象和不可变对象,可变对象:list,dict.不可变对象有:int,string,float,tuple Python int,string,float,tuple不可变举栗子: def int_object(): i = 89 j = 89 print(id(89)) print('i id:' + str(id(i))) print('j id:' + str(id(j))) print(i is j)

关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解

最近对深浅拷贝(复制)做了一些研究,在此将自己的理解写下来,希望对大家有所帮助.本人尚处在摸索阶段,希望各位予以指正. 本文包括如下方向的探索: 1.指针与对象: 2.深/浅拷贝(复制): 3.可变/不可变对象: 4.Objective-C中的copy与mutableCopy方法. 一.指针与对象 在初始学习编程的时候,对于绝大多数面向对象编程的语言,这都是个绕不开的重点与难点.非常惭愧的是对它的认识我一直是不够的,并且感觉这项技术有许多的内容可以挖掘.说这是面向对象编程的核心思想也不为过.很多

python中的可变与不可变对象

Python中的可变对象和不可变对象 什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址. 可变对象,该对象所指向的内存中的值可以被改变.变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变. Python中,数值类型(int和float).字符串str.元组tuple都是不可变类

可变于不可变对象分类

Python在heap中分配的对象分成两类: 可变对象和不可变对象. 所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变. 可变即内存空间可变,不可变即内存空间不可变.这里用 id 函数看对象的内存地址有没有变化. 不可变(immutable):int.字符串(string).float.(数值型number).元组(tuple) 可变(mutable):字典型(dictionary).列表型(list) 如不可变类型例子:  id不变,type不变,值也不变. 从上图可以看出:变