列表和元祖的使用 day 04
-
列表 :存储数据的容器,可以放大量元素
-
常用操作方法
1. append 追加,在原列表尾部追加值 # s = [1, 2, 3, 'haode','ke'] # s1 = s.append('holting')#不能输出追加这个动作 # print(s1) 2. #insert 插入 在原列表指定索引位置插入值 # s = [1, 2, 3, 'haode','ke','中国'] # s.insert(0,'xuexi') # print(s) 3.#extend 扩展,将一个列表中的元素添加到另一个列表中 # s = [1, 2, 3, 'haode','ke','中国'] # h = ['holting',666] # s.extend(h)#h中的值逐一追加到 s 中 # print(s) 4.#remove 在原列表中根据值删除(从左到右找到第一个值删除) # s = [1, 2, 3, 'haode','ke','中国',3] # s.remove(3) # print(s) 5.#pop 在原列表中根据索引踢出(相当于删除)某个元素 # s = [1, 2, 3, 'haode','ke','中国'] # s.pop()#默认提出最后一个元素 # print(s) # s1 = s.pop(1)#输出踢出(删除)动作,为被踢出元素, # print(s1,type(s1))#与上面的不能输出追加动作, # print(s) 6.#clear 清空原列表 # s = [1, 2, 3, 'haode','ke','中国'] # s.clear() # print(s) 7.#reverse 反转原列表 # s = [1, 2, 3, 'haode','ke','中国'] # s.reverse() # print(s)
-
转换为列表,一般通过list强制转换,它的内部就是循环每个元素,再将元素追加到列表中。
所以,想要转换为列表类型要求:必须可以被循环的元素才能转换为列表
-
获取长度等
len 获取元素个数 # message = '我赌你的枪里没有子弹' # s = list(message) # print(s)#['我', '赌', '你', '的', '枪', '里', '没', '有', '子', '弹'] # user_list = ['龙傲天','叶良辰','踏浪铺'] # print(len(user_list)) #del 根据索引删除元素 # data = [ "谢广坤",True,"宋小宝" ] # del data[1] # print(data) #切片 # user_list = ['龙傲天','叶良辰','踏浪铺'] # print(user_list[0:2]) # print(user_list[:-1]) # print(user_list[1:]) #步长 # user_list = ['龙傲天','叶良辰','踏浪铺',"宋小宝","刘能"] # print(user_list[0::2]) # print(user_list[4:1:-1])#输出顺序可为这样 # ['刘能', '宋小宝', '踏浪铺']
-
for循环
for i in range(100,1,-1): print(i) user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] for item in user_list: if item == '刘华强': continue print(name)
-
嵌套
列表属于容器,内部可以放各种数据,所以也支持列表 的嵌套
对于嵌套的值,可以根据之前学习的索引知识来进行学习
data = [ "谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝" ] print(data[0][2])#输出结果为坤 print(data[1][-1]) data.append(666) print(data) del data[-2] print(data) data[1].append('holting') print(data)
-
-
元祖(tuple)
- 元祖也是一个容器,里面可以放各种数据(和列表相似),但是元祖里的元素不允许增加删除,修改,只能读。
- 一般用于存储一些在程序中不应该被修改的值。
元祖的定义:
h = (11,22,33,) h1 = ('haohao','xuexi',)
建议在元祖的最后多加一个逗号,用于标识它是一个元祖。
面试题 1. 比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别? 2. 比较值 v1 = ((1),(2),(3)) 和 v2 = ((1,),(2,),(3,),) 有什么区别? 答 v1v2 是int v3是tuple v1v2都是tuple
转换:
其他类型可以转换为元组,一般可以被循环的元素才能转换,目前我们学到的可以被循环有:字符串和列表。
name = "武沛齐" data = tuple(name) print(data) # 输出 ("武","沛","齐") name = ["武沛齐",18,"pythonav"] data = tuple(name) print(data) # 输出 ("武沛齐",18,"pythonav")
其他:
元组和列表非常相似,但由于元祖的子元素无法修改的特点,所有元祖都没有修改删除,添加的操作,只有读操作。
获取长度 len() 索引 切片 步长 ls[6:1:-1] for循环
-
元祖嵌套
-
由于元祖和列表都可以充当容器,它们内部可以放很多的元素,并且也支持元素内的各种嵌套。
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在python中可以帮助我们快速生成一个特定范围的数字(列表)
-
# 注意:在Python2中range会直接生成列表;在Python3中range生成是一个range对象(不会立即在内存中创建这些数,而是在循环时候边使用边创建,节省内存开销);
v1 = range(1,6) # 生成的数为:[1、2、3、4、5] v2 = range(1,6,2) # 生成的数为:[1、3、4] v3= range(6,1,-1) # 生成的数为:[6、5、4、3、2] print(range(1,10))#py3中并没有直接生成列表
-
range 和for循环 放在一起使用,进而获取一些数字。
for i in range(10): print(i) for i in range(10,0,-1): print(i)
-