Python中哪种数据不支持切片的可变数据类型类型有哪些呢?

发布时间: 16:20:44 来源:亿速云 阅读:199 作者:iii 栏目:

这篇文章主要讲解了“python的可变和不可变数据类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python的可变和不可变数据类型是什么”吧!

python中不可变数据类型的定义为:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,就称不可变数据类型,包括:int(整型)、string(字符串)、tuple(元组)

首先我们来看一下整型为什么是不可变数据类型。给一个变量x赋值,然后改变这个x的值,输出前后两次的内存地址id和数据类型type

  • id():获取对象的内存地址

  • type():当只有一个参数的时候,返回对象的类型。当有三个参数的时候返回一个类对象。

# 打印x的内存地址和数据类型 # 打印改变后的x的内存地址和数据类型

从上面的代码我们可以得出,变量x为整型,且当x的值发生改变的时候,变量的内存地址也发生了改变。所以整型是不可变的数据类型。

根据上面的实例,我们把变量x的值换成字符串试试,看能不能得出字符串是不可变数据类型的结论呢~

# 打印x的内存地址和数据类型 # 打印改变后的x的内存地址和数据类型

代码中当变量改变时,变量的内存地址由 变为了 。所以字符串是不可变数据类型。

元组被称为只读列表,即数据可以被查询,但不能被修改。如果我们强行修改元组中的数据,会报错。

python中对可变数据类型的定义为:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,就称可变数据类型。包括:set(集合)、list(列表)、dict(字典)

我们先来看一下集合,定义一个集合set1,改变set1的值,且输出两次的内存地址

# 给set1添加一个元素

从上面代码我们可以看出,即使一个集合发生了改变,这个集合的内存地址是不变的。所以集合是可变数据类型。

当列表中的值发生了改变时,内存地址依旧不变,所以列表是可变数据类型。

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。字典中的key值必须是可哈希的数据类型,也就是整型,字符串,元组等。

从上面代码可以看出,当字典中的元素发生改变时,内存地址不变,都是。所以字典是可变数据类型。

感谢各位的阅读,以上就是“python的可变和不可变数据类型是什么”的内容了,经过本文的学习后,相信大家对python的可变和不可变数据类型是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

摘要 因为python是属于计算机编程之类的,你需要去了解他的语法结构,还有变量的定义规则以及面向对象的定义,函数,方法,类的各种形态结构的定义和使用条件,还有条件运算符,循环语句内置函数之间的关系,所以考试的题目是非常难的。

因为python是属于计算机编程之类的,你需要去了解他的语法结构,还有变量的定义规则以及面向对象的定义,函数,方法,类的各种形态结构的定义和使用条件,还有条件运算符,循环语句内置函数之间的关系,所以考试的题目是非常难的。

1、Python使用符号#标示单行注释;以缩进对齐划分语句块。2、Python序列类型包括字符串、 列表 、 元组 三种; _字典_是Python中唯一的映射类型。3、Python序列中的可变数据类型有列表和字典,不可变数据类型有字符串、数组、元组。4、Python的数字类型分为整数、长整数、浮点型、复数等子类型。5、设L=[a,b,c,d,e,f,g],则L[3]值是d,L[3:5]值是d,e,L[:5]值是a,b,c,d,e,L[3:]值是d,e,f,g,L[ :

Q1: 请写出一段Python实现删除一个列表中的重复元素?

re.compile是将正则表达式编译成一个对象,加快速度,并重复使用

Q15: 有哪些提高Python运行效率的方法?

a. 使用生成器,因为可以节约大量内存;

b. 循环代码优化,避免过多重复代码的执行;

d. 多进程、多线程、协程;

e. 多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率。

#利用min()方法求出最小值,原列表删除最小值,新列表加入最小值,递归调用获取最小值的函数,反复操作。

允许我们在调用函数的时候传入多个实参,

Q18: Python面向对象的继承有什么特点?

a. 同时支持单继承与多继承,当只有一个父类时为单继承,当存在多个父类时为多继承。

b. 子类会继承父类所有的属性和方法,子类也可以覆盖父类同名的变量和方法。

c. 在继承中基类的构造(__init__())方法不会被自动调用,它需要在其派生类的构造中专门调用。

d. 在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别于在类中调用普通函数时并不需要带上 self 参数。

Q19: 如何判断是函数还是方法?

与类和实例有绑定关系的 function 都属于方法(method)

Q20: Python会不会出现内存泄露,为什么?

当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏

我要回帖

更多关于 Python中哪种数据不支持切片 的文章

 

随机推荐