Python 核心数据结构(六)-range类型及可变与不可变对象

一、range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打 印列表。

print(range(10)) 输出结果: range(0, 10)

    如果想把range对象变成列表,可以使用list()函数对range进行处理 

print(list(range(5))) 输出结果: [0, 1, 2, 3, 4]

二、  range函数的基本语法 

range(stop) range(start, stop[, step]) 
start: 计数从 start 开始。默认是从 0 开始。
  例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。
   例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

三、可变与不可变对象 

     这里的可变与不可变是相对于内存里的那块地方是否可以改变,通俗点讲,就是内存中对应的地址在值 发生变动的时候会不会变。地址不变时,为可变对象,变动时,为不可变对象。


 

如果各位之前有自己编写并运行过,会发现这段代码运行时正确的,列表第一个元素的值确实被修改。

这是为什么呢?

我们回到list的存储方式,list的地址里存的都是实际内容的指针,此时元组的内容指向list地址,而无论 list的内容如何变更,list的地址也不会变,所以并不违背set里存储的元素不能变这样一个原则。

注意:

可变类型:列表、字典

不可变类型:数字、字符串、元组

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值