一.元祖
1.对于容器型数据类型list,无论谁都可以对其增删改查,那么有一些重要的数据放在list中是不安全的,所以需要一种容器类的数据类型存放重要的数据,创建之初只能查看而不能增删改,这种数据类型就是元祖。
元祖:俗称不可变的列表,又被成为只读列表,元祖也是python的基本数据类型之一,
用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改.在python中关键字是tuple
tu = ('我','怎么','这么','可爱')
tu1 = tu[0] # 记性下标
print(tu1)
for i in tu:
print(i) # 进行for循环
tu2 = tu[0:3]
print(tu2) # 进行切片
结果:
Traceback (most recent call last):
File "D:/python_object/path2/test.py", line 1286, in <module>
tu[0] = '你'
NameError: name 'tu' is not defined
关于不可变, 注意: 这里元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可以变, 这取决于子元素是否是可变对象.
元组中如果只有一个元素. 一定要添加一个逗号, 否则就不是元组
tu = ('meet')
print(type(tu)) #type是查看数据类型
结果:
<class:str>
tu = ('meet',)
print(type(tu)) #type是查看数据类型
结果:
<class:tuple>
这个知识点如何使用
1.可遍历
2.可切片
3.有len,count,index方法
元祖嵌套
tu = ('今天姐姐不在家','姐夫和小姨子在客厅聊天',('姐夫问小姨子税后多少钱','小姨子低声说道说和姐夫还提钱'))
tu1 = tu[0]
tu2 = tu[1]
tu3 = tu[2][0]
tu4 = tu[2][1]
print(tu1)
print(tu2)
print(tu3)
print(tu4)
结果:
今天姐姐不在家
姐夫和小姨子在客厅聊天
姐夫问小姨子税后多少钱
小姨子低声说道说和姐夫还提钱
在哪里使用
就是将一些非常重要的不可让人改动的数据放在元祖中,只供查看。后期你们写项目的时候会有配置文件,配置文件中的不想让人修改的单个变量使用常量,如果是多个不想让人修改的就是用元组来存储
二.range
翻译过来就是范围,那我们我来先看下.
range(0,5,1)
参数第一个是范围的起始位置
参数第二个是范围的结束位置
参数第三个是步长
print(range(0,5))
# 结果:
range(0, 5) #一个范围
# 我们可以通过list方法来转换这个范围来查看一下
l = list(range(0,5))
print(l)
# 结果:
[0, 1, 2, 3, 4]
l = list(range(0,5,2))
print(l)
# 结果:
[0, 2, 4] # 这个结果就会发现和我之前用步长获取的内容是相似的,是的他就是步长
-
range的特性是顾头不顾尾
-
python2和python3中的区别
print(range(0,10)) #python2中直接返回列表,xrange()和python3中的range相似 #python3中作为迭代对象,怎么写就怎么打印,可以使用list()进行转换
-
range的语法
range(0,10)#起始位置和终止位置,起始位置是0时可以默认不写 range(10,1,-1)#也可以从大到小生成数据, range(1,100,2)#也可以用来生成奇数和偶数等
-
常见的问题
lst = [] for i in lst: lst.append("meet") print(lst) # 不会打印内容 因为lst是空的 lst = [1,2] for i in lst: lst.append("meet") print(lst) # 循环打印lst中的内容 -- 此循环是死循环 lst = [1,2] for i in lst: lst.append("meet") print(lst) # 死循环 -- 不会打印内容 lst = [] for i in range(5): lst.append([]) print(lst) # [[],[],[],[],[]] lst = [1,2] lst[0] = lst print(lst) # [[...],2]