python:数据类型( list tuple )
一、列表
1.什么是列表
列表由 [] 来表示,每一项元素用逗号隔开.
列表什么都能装(也可以装列表),能装对象的对象.
列表可以装大量的数据,可以嵌入列表 如下:
lst=["移动硬盘","手机",110,True,False,["人民币","欧元"]]
2.列表的索引和切片 (用法同字符串类似)
列表和字符串是一样的,也有索引和切片
切出来的内容是列表
索引的下标从0开始
lst[起始位置:结束位置:步长]
1 lst=["海上钢琴师","奥特曼","咒怨","舌尖上的中国","穹顶之下","金刚"] 2 print(lst[3]) #舌尖上的中国 3 print(lst[3][2]) #上 4 print(lst[-2]) #穹顶之下 5 print(lst[1:4]) #['奥特曼', '咒怨', '舌尖上的中国'] 6 print(lst[-3:-1]) #['舌尖上的中国', '穹顶之下'] #顾头不顾尾 7 print(lst[-1:-5:-2]) #['金刚', '舌尖上的中国']
3.列表的增删改查
1) 增加 .append() .insert() .extend() 数字和bool(非迭代对象)不可以迭代添加,
1 lst.append("xx") #只能添加一个 lst.append("xx","xx")是错误的 2 lst.insert(index,"xx") #指定位置插入 3 lst.exteng("xx") #在结尾处分开迭代添加 4 lst.extend(["xx","xxx"]) #在结尾处整体添加 需要添加[]
1 lst=["赵四","施瓦星格","黄渤","郭达森","赛利亚"] 2 3 lst.append("黄宏") 4 print(lst) 5 #输出:['赵四', '施瓦星格', '黄渤', '郭达森', '赛利亚', '黄宏'] 6 7 lst.insert(1,"麻花藤") 8 print(lst) 9 #输出:['赵四', '麻花藤', '施瓦星格', '黄渤', '郭达森', '赛利亚'] 10 11 lst.extend("麻花藤") 12 print(lst) 13 #输出:['赵四', '施瓦星格', '黄渤', '郭达森', '赛利亚', '麻', '花', '藤'] 14 15 lst.extend(["麻花藤","马云"]) #在结尾处整体添加 需要添加[] 16 print(lst) 17 #['赵四', '施瓦星格', '黄渤', '郭达森', '赛利亚', '麻花藤', '马云']
2) 删除
.pop() 默认删除最后一个,有索引则按索引位置删除 可以有返回值
.remove()
del lst [ ] 切片删除 通过下标删除
.clear() 清空
1 lst=["赵四","施瓦星格","黄渤","郭达森","赛利亚"] 2 3 # 1.pop() 4 data=lst.pop(2) #返回被删除的数据 5 print(data) 6 print(lst) 7 8 # 2.remove() 9 lst.remove("赵四") #删除指定元素 10 lst.remove("刘能") #如果不存在会报错 11 12 # 3.切片删除 删除切片中的内容 13 del lst[1:3] 14 print(lst) #输出:['赵四', '郭达森', '赛利亚'] 15 16 # 4.清空 删除所有的元素 17 lst.clear() 18 print(lst) #输出:[]
3) 改 索引改和切片改
普通修改(索引修改): lst [index]=="xx" 需要记住
切片修改: 1) 步长为1时, 直接替换掉切片中的内容 (替换元素为多少个都可以)
2) 步长不为1时, 替换的元素与切片中元素的个数保持一致
1 lst=["王者荣耀","魔兽世界","DNF","逆水寒","反恐精英"] 2 #普通修改 3 lst[0]="扫雷" 4 lst[3]="吃鸡" 5 print(lst) 6 #输出:['扫雷', '魔兽世界', 'DNF', '吃鸡', '反恐精英'] 7 8 #切片修改时.如果步长为1,会直接替换掉切片内容 9 lst[1:3]="跑跑卡丁车" #"魔兽世界","DNF"会替换为 '跑', '跑', '卡', '丁', '车' 10 print(lst) 11 #输出:['王者荣耀', '跑', '跑', '卡', '丁', '车', '逆水寒', '反恐精英'] 12 13 lst[1:3]=["跑跑卡丁车"] #添加[] 作为整体替换掉切片内容 14 print(lst) 15 #输出:['王者荣耀', '跑跑卡丁车', '逆水寒', '反恐精英'] 16 17 #切片修改时.如果步长不为1,注意元素的个数需保持一致 18 lst[1::2]=["QQ华夏","QQ三国"] 19 print(lst) 20 #输出:['王者荣耀', 'QQ华夏', 'DNF', 'QQ三国', '反恐精英'] 21 lst[1::2]=["QQ华夏"] #切片内容有2个"魔兽世界""逆水寒", 22 print(lst) #会报错
4) 查 (可用于循环和索引)
用 for 循环查
1 lst=["锅包肉","火锅","巫山烤鱼","清水煮白菜","烤鸭"] 2 for el in lst: #el为element 3 print(el)
5)常用的操作
.sort() # 排序 默认是升序 .sort( reverse==True ) # 降序
.reverse() # 翻转
len( ) # 求列表的长度 内置函数可用于很多 比如 : str tuple
count() #计数
1 lst=[1,5,3,4,3,2,44,3,2,22] 2 lst.sort() #正序 3 lst.sort(reverse=True) #降序 4 5 lst=["晓雪","小茹","小花","晓梅"] 6 lst.reverse() #翻转 7 print(lst) #输出:['晓梅', '小花', '小茹', '晓雪'] 8 print(len(lst)) #输出:4
4.列表的嵌套
降维 一层一层的看
1 lst=["alex","gay","wusir",["范冰冰","李冰冰",[1,"火锅"],"王冰冰"]] 2 print(lst[3][2][1]) 3 #输出:火锅
改变列表中的某一元素,要重新为该元素赋值
如: 将某一元素改为大写 需要重新赋值
lst = ["alex", "gay","wusir",["范冰冰","李冰冰",[1, "火锅", "ritian"],"王冰冰"]] lst[3][2][2] = lst[3][2][2].upper() #改为大写 print(lst) lst[3][2][0] = lst[3][2][0] + 99 #将1变为100 print(lst)
二、元组
只读列表.只能看啥也不能干 (只)不支持 增删改 但是查可以用索引如: tu [2]
使用 () 表示元组
元组是可迭代对象,因此可以使用 for 循环
如果元组中只有一个元素表示为: (元素, ) 必须要逗号
空元组: tuple( )
1 #()表示优先级 2 print((1+3)*5) 3 print((3)) #表示优先级 还是3 4 5 #元组中只有一个元素时,需要在元素后加逗号 6 tu=(3,) #是元组 7 tu=(3) #非元组 表示的是优先级 8 tu=tuple() #空元组
元组本身不可变(只限于第一层不能赋值),
当元组内部含有字符串时,字符串的内容是不可变的. 因为字符串本身是不变的.
当元组内部含有列表时, 列表中的内容是可变的. 因为列表本身是可变的.
1 tu=(1,"哈喽","how are you?","alex",[]) 2 tu[3].upper() #结果不变 因为alex字符串本身是不可变的 3 print(tu) 4 #输出:(1, '哈喽', 'how are you?', 'alex', []) 5 6 tu[4].append("chen") #可以添加的,因为位置4处为列表,列表是可变的 7 print(tu) 8 #输出:(1, '哈喽', 'how are you?', 'alex', ['chen'])
三、range 用法类似于切片
print (range(1,10)) range(1,10) [1,2,3,4,5,6,7,8,9] 取不到10(顾头不顾尾)
range (n) # 从0到n-1
range (m,n) # 从m到n-1
renge (m,n,q) # 从m到n-1,每q个取1个
1 # range() 类似切片 2 for i in range(10): #从1-9 不包含10 3 print(i) 4 #输出:0 1 2 3 4 5 6 7 8 9 5 for i in range(3,7): # 从3-7 不包含7 6 print(i) 7 #输出:3 4 5 6 8 for i in range(1,10,3): #从1-10,不包含10,每3个取一个 9 print(i) 10 #输出:1 4 7
range是可迭代对象,可以用for循环
使用 range 和 for 循环来获取列表中的索引
1 lst=["",""] 2 for i in range(len(lst)): 3 i #索引 4 lst[i]
1 # 0 1 2 3 4 5 2 lst = ["砂锅", "馒头", "盖浇饭", "刀削面", "大麻花", "大煎饼"] 3 # 获取到列表的索引. 拿到索引之后. 可以拿到元素 4 for i in range(len(lst)): 5 print(i) # i就是lst的索引 6 print(lst[i])
补充:
python3: range() 生成器
python2: xrange() 生成器

浙公网安备 33010602011771号