神奇的python系列4:python基础数据类型二(列表)
第一步 列表
列表是python的基础数据类型之一,列表相比于字符串,不仅可以存放不同的数据类型.而且可以存放大量的数据.
lst = [1,2,3] # 存储一些数据,数据量比较大 print(lst)
list 列表是python的关键字。列表和字符串一样有下标(索引),切片,步长
lst = ['hello',1,2,3,False] lst[0] = '我怎么这么可爱' print(lst)
同时还要补充一点字符串是不可变数据类型。
第二步 列表增删改查
增加的方法:
1.追加
lst.append('牛爱花') # 追加 在末尾的位置加一个 print(lst)
2.插入
lst.insert(3,'包夜') # 插入 第一个要插入的位置下标,第二个是要插入的内容 print(lst)
3.迭代添加
lst.extend([1,2,3]) #迭代添加 整型和布尔值不能迭代 print(lst)
4.列表合并
lst1 = [1,2,3] lst2 = [4,5,6] lst3 = lst1 + lst2 # 列表合并 开辟了一块空间 print(lst1) print(lst2) print(lst3)
删除的方法:
1.删除整个列表
del lst #删除整个列表
print(lst)
2.通过下标删除
del lst[-1] # 配合下标删除 print(lst)
3.通过切片删除
del lst[0:2] # 配合切片删除 print(lst)
lst = ['杨紫','高圆圆','刘亦菲','关晓彤'] del lst[0:3:2] #配合切片+步长删除 print(lst)
4.pop()删除
lst.pop() # 没有指定时,默认删除最后一个 print(lst)
ret = lst.pop(0) #可以指定下标删除 具有返回值 print(lst) print(ret) # 返回被删除的内容
5.remove()删除
lst.remove('高圆圆') # 通过内容删除 print(lst)
6.clear()删除
lst.clear() #清空 print(lst)
修改的方法:
1.通过下标修改
lst[0] = '杨幂' # 通过下标修改 **重要** print(lst)
2.通过切片修改
lst[0:3] = '你好美' **重要** print(lst) # 结果 ['你', '好', '美', '关晓彤'] lst[0:3] = '你好' #通过切片修改 print(lst) # ['你','好','','关晓彤']
3.通过切片+步长修改
lst = ['杨紫','高圆圆','刘亦菲','关晓彤'] lst[0:4:2] = '好嗨' # 切片+步长 长度要统一 print(lst)
查询的方法:
# for 循环 lst = ['杨紫','高圆圆','刘亦菲','关晓彤'] for i in ['杨紫','高圆圆','刘亦菲','关晓彤']: print(i)
列表的其他方法:
1.index()通过内容找下标
ret = lst.index('高圆圆') # 通过内容查找下标 print(ret)
2.count()统计
print(lst.count('高圆圆')) # 计数
3.reverse()翻转
lst.reverse() print(lst)
4.sort()排序
lst.sort() # 排序 默认升序 print(lst) lst.sort(reverse=True) # 降序 print(lst)
第三步 列表嵌套
采用降维操作,一层一层的看就好
lst = ['alex','wusir','女神','日天',['于超','吴超','必胜客',['江毅','肖峰']]] print(lst[4][3][0])
嵌套列表的一些方法:
lst[-1][-1][0] = '雪碧' #修改 lst[-2] = '香皂' lst[2] = lst[2].upper() #全部改大写 lst[1] = 'JJ' print(lst) lst = ['汪峰','jj','tt','统一','机油',3534,['日天',['海飞丝','飘柔','霸王','吕',['沙宣']]]] # lst[-1][0] = lst[-1][0].replace('天','地') print(lst)
第四步 元组
元组(tuple),元祖是不可变数据,不能进行修改,但是时有序的,是python的基本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改。
tu = (1,2,3,4,'你好啊',False) # print(tu[2:5]) # 元祖切片结果也是元祖 # print(tu[:5:2]) #切片 + 步长 tu = list(tu) #转换成列表 print(tu)
tu = () #面试题 print(type(tu)) #什么都不填的话就是tuple类型
lst = [] #什么都不填的话就是列表类型 print(type(lst))
第五步 range(范围)
range 第一个元素是起始位置,第二个是终止位置,第三个是步长
range(0,10) # 0 起始位置 ,10 终止位置
for i in range(1,100,2): # 可以让for循环来循环数字 print(i) lst = [1,2,3,4] print(5*lst)
# 面试题: print(range(0,10)) # python3 中range(0, 10) 是一个可迭代对象
print(list(range(1,10,3))) #类型是列表
python2中的xrange和python3中的range是一样的,都是可迭代对象
prthon2中的range是获取到一个列表