列表、元组及range
列表(关键字list)
列表是python的基本数据类型,与字符串相比,可存储大量数据,而且列表是有序的,有索引值,可切片,方便取值。
列表在内存中是如何存储的:
list1 = ['alex',1,True,'黑哥']
print(list1[0])
print(list1[0:3:2])
print(list1[1:3])
# 结果:
alex
['alex',True]
[1,True]
列表的方法
增加
list.append()
list1 = ['alex',1,True,'黑哥']
list1.append('长门')
print(list1)
# 结果:['alex',1,True,'黑哥','长门']
list.insert()
list1 = ['alex',1,True,'黑哥']
list1.insert(2,'佩恩') #可通过索引插入内容
print(list1)
# 结果:['alex',1,'佩恩',True,'黑哥']
list.extend()
list1 = ['alex',1,True,'黑哥']
list1.extend('hahaa') #添加可迭代对象
print(list1)
# 结果:['alex',1,True,'黑哥','h','a','h','a','a']
删除
list.pop()
list1 = ['alex',1,'佩恩',True,'黑哥']
list1.pop()# 默认删除最后一个元素
print(list1)
# 结果:['alex',1,'佩恩',True]
list1 = ['alex',1,'佩恩',True,'黑哥']
list1.pop(2)# 通过索引删除元素
print(list1)
# 结果:['alex',1,True,'黑哥']
list1 = ['alex',1,'佩恩',True,'黑哥']
name = list1.pop(2)# pop可返回被删除元素
print(name)
# 结果:佩恩
list.remove()
list1 = ['alex',1,'佩恩',True,'黑哥']
list1.remove('佩恩') # 通过元素名移除
print(list1)
# 结果:['alex',1,True,'黑哥']
list.clear()
list1 = ['alex',1,'佩恩',True,'黑哥']
list1.clear()
print(list1)
# 结果:[]
del list 删除整个列表,无返回内容
list1 = ['alex',1,'佩恩',True,'黑哥']
del list1
print(list1)
# 结果:
del list[1:4] 通过索引删除指定内容
list1 = ['alex',1,'佩恩',True,'黑哥']
del list1[1:4]
print(list1)
# 结果:['alex','黑哥']
修改
# 修改
lst = ["太白", "太黑", "五色", "银王", "⽇天"]
lst[1] = "太污" # 把1号元素修改成太污 print(lst)
lst[1:4:3] = ["麻花藤", "哇靠"] # 切片修改也OK. 如果步长不是1, 要注意元素的数
print(lst)
# 结果:报错 attempt to assign sequence of size 2 to extended slice of size 1
# 1个位置,修改元素为2
lst = ["太白", "太黑", "五色", "银王", "⽇天"]
lst[1:4] = ["我是哪个村的村长王富贵"] # 如果切片没有步长或者步长是1. 则不用关心个数
print(lst)
# 结果:["太白", "我是哪个村的村长王富贵", "⽇天"]
查找
list1 = ['alex',1,'佩恩',True,'黑哥'] #列表为可迭代对象,可进行for循环
for i in list1:
print(i)
# 结果:
'alex'
1
'佩恩'
True
'黑哥'
列表的嵌套(利用降维操作,一层一层看就好)
list1 = ['alex',1,'佩恩',[2,'dsx'],True,'黑哥',['鸣人',['小樱','雏田']]]
print(list1[-1][-1][0])
# 结果:小樱
元组(关键字tuple)
元祖:俗称不可变的列表,又被成为只读列表,元祖也是python的基本数据类型之一
用来存储重要的信息,常用在配置文件中
元组为不可变数据类型,无增删改操作,与列表相似,可进行索引、遍历、切片(切片数据类型为元组)
range
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] # 这个结果就会发现和我之前用步长获取的内容是相似的,是的他就是步长
python2中range()和python3中range()的区别:
# python 2
print(range(0,10))
# 结果:
[0,1,2,3,4,5,6,7,8,9]
# python 3
print(range(0,10))
# 结果:
range(0,10)