活动地址:CSDN21天学习挑战赛
开头一叙:
无论是以后学习需要或者是三年后的工作需要,都需要用到python的工具,也接着这次活动的机会,把python系统的学一遍。跟着大佬,让python知识从入门到精通。
1 列表
列表——list–容器(书包) : 有序、可变、支持索引
列表:存储数据、存储字符串、数字、布尔型、列表、集合、元组、字典
- list[1:3]左闭右开
定义一个列表:
lst=["alex",123,True,"憨憨","alex"] #用逗号分割表示一个元素,存入的是地址 # print(lst) # print(id(lst[0]))#id获取对象的内存地址 # #['alex', 123, True, '憨憨'],输出有序
列表是可变的:
lst[0]="alexxx" #字符串不是可变的变量 print(lst)
若继续添加列表内容:
lst.append("烤鸭") #在列表最后的位置添加 print(lst) lst.insert(2,"黑哥") #在第二个元素后面添加。但以后尽量不要使用,若数据量太大,影响效率 print(lst) lst.extend("今天是个好日子") #迭代添加,把今天好逐个添加,不能放数字,因为数字不能被循环 #['alex', 123, True, '憨憨', '今', '天', '是', '个', '好', '日', '子'] print(lst)
列表删除元素:
lst=["alex",123,True,"憨憨","alex1"] lst.pop() #弹,默认删除最后一个 print(lst) lst.pop(1) print(lst) # 通过指定索引删除 lst.remove("憨憨") #通过元素名字删除,若有多个元素重名,删除第一个,此后不再删除 print(lst) del lst #强制销毁列表 del lst[0:3] #删除0-3,切片删除 print(lst) del lst[0:4:3] #删除0-4,0开始之后,中间隔断两个数删一次,步长删除 print(lst) lst.clear() #清空 print(lst)
修改列表内容:
lst=["alex",123,True,"憨憨","alex1"] lst[3]="大憨憨" print(lst) lst[1:2]="12345" #切片修改 #['alex', '1', '2', '3', '4', '5', True, '憨憨', 'alex1'] print(lst) lst[1:4]=1,"daaa",3 print(lst) lst[1:4:2]="12" #步长不为1的,必须一一对应,多一个或者少一个都不行 print(lst)
列表的嵌套:
lst=[1,"春生","小东北","渣弟",["大黑哥",["孙悟空","弼马温","齐天大圣"],"冯强","海峰",["太白金星","女神","吴超",["萧峰"]]]] print(lst[-1]) # ['大黑哥', '冯强', '海峰', ['太白金星', '女神', '吴超', ['萧峰']]] a=lst[-1] print(a[-1]) #输出:['太白金星', '女神', '吴超', ['萧峰']] # 不管什么类型切片的时候,都是源数据类型 #想要获取'弼马温' a=lst[-1][1][1] print(a)
2 元组
2. 1 定义
首先举一个例子:
t=123,'abc',["come","here"] print(t)
元组是用圆括号括起来的,元素之间用逗号隔开。如上输出:
(123, 'abc', ['come', 'here'])
其中,元组也是一种序列,与字符串、列表类似。
- 元组中的元素不能更改,与字符串类似
- 元组的存储类型可以是任何类型的数据,这一点与列表相同
2.2 索引与切片
操作与列表类似:
t=1,'23',[123,'abc'],["come","here"] print(t[2]) print(t[1:]) print(t[2][0])
[123, 'abc'] ('23', [123, 'abc'], ['come', 'here']) 123
需要注意的是,若一个元组只有一个元素,应该在元素后面加一个半角的英文逗号。如下:
a=(3) print(type(a)) b=(3,) print(type(b))
<class 'int'> <class 'tuple'>
列表与元组之间的转换
- 元组->列表 tuple->list
t=1,'23',[123,'abc'],["come","here"] print(t) tls=list(t) print(tls) #输出: #(1, '23', [123, 'abc'], ['come', 'here']) #[1, '23', [123, 'abc'], ['come', 'here']]
- 列表->元组 list->tuple
tu_tuple=tuple(tls) print(tu_tuple) #输出: #(1, '23', [123, 'abc'], ['come', 'here'])
3 range() - 范围
python3 中的range是一个迭代对象,写得是怎样的打印的怎样
print(list(range(0,10))) # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #顾头不顾尾(左闭右开)
python2 中的range返回的是一个列表
print(range(0,10)) # # 输出:range(0, 10)
示例展示:
print(list(range(10,1,-1))) #[10:1:-1] #输出:[10, 9, 8, 7, 6, 5, 4, 3, 2] #使用for循环和range打印100~1 for i in range(100,0,-1): print(i,end=" ") #输出:100 99 98 97 96 95 94 93 92 91 ..... 1