本节主要内容:
1. 列表
2. 列表的增删改查
3. 列表的嵌套
4. 元组和元组嵌套
5. range
1.列表
列表说明:列表是Python的基础数据类型之一,其他编程语言也有类似的数据类型,比如js的数组.java的数组等等.它是以[]括起来,每个元素用','隔开而且可以存放各种数据类型:
列表相较于字符串,不仅不可以存放不同的数据类型,而且可以存放大量的数据,32位Python可以存放536870912个元素,64位可以存放: 1152921504606846975个元素.而且列表是有序的(按照您保存的顺序),有索引,可以切片方便取值.
1.1 列表的索引和切片
这里和字符串一样,可以通过索引取值和切片取值. 注意列表的切片后还是列表.
如下示例:
lst = ["周星星","周润发","周杰伦","周星驰","刘德华","成龙"] print(lst[0]) #按照索引取值 print(lst[0:2]) #用切片取值,并且敢是顾头不顾尾 print(lst[1:5:2]) #可以设置步长来跳着取 print(lst[4:1:-1]) #也可以反着取
1.2 列表的增
列表和字符不同的一点是列表可以进行增删除改查操作.
列表的增有三种, append,insert,extend
示例如下:
#列表的增.包话append.insert,expend lst.append("王小明") # append是在列表的后面增加 print(lst) lst.insert(1,"邓超") #指定索引增加列表,之前位置的值向后偏移. print(lst) lst.extend("曾小贤") #会把迭代对像循环后获取元素放入列表.并且是放在后面 print(lst)
这里注意的是如何把字符串转化为列表,有两种方法
一种是字符串的split方法和列表的extend方法.两种方法,还是extend比较好.
1.3列表的删除
列表的删除有四个方法,分别是pop,remove,clear,del
示例如下:
注意pop平是是这样调用的,pop()如果传入索引的话,也可以删除指定索引的内容
并且如果p = lst.pop()那么p会收到pop()的删除内容.也是四个删除方法里面唯一返回删除内容的方法
#列表的删除,删除有四个 pop,remove ,clear,del lst.pop() #pop可以删除最后一个,如果指定索引的话,可以删除指定索引的内容. print(lst) lst.pop(2) print(lst)
remove 是指定内容删除,但是只删除第一个内容,后面的不删除.同时如果删除的内容不存在,会报错
lst.remove("刘德华") print(lst) # lst.remove("哈哈") #remove是指定内容,然后删除会报错.
clear 是清空列表,并且返回空列表
#clear 是清空列表,并且返回空列表 lst.clear() print(lst)
del是切片删除,并且返回也是列且
示例:
del lst[1:3] print(lst)
1.3 列表的改
list 改,就是通过索引赋值,以及切片赋值的方法.
这里要注意的是切片赋值
切片赋值的话,会把赋值内容给迭代了.这里要注意一下.
另外切片赋值如果步长不为1的话,那么切片的元素长要和迭代内容的元素个数一致.
示例如下:
lst = ["周星星","周润发","周杰伦","周星驰","刘德华","成龙","刘德华"] lst[0] = "刘聪" #单个赋值改的话,直接赋值即可.支持字符串,和列表赋值 print(lst) lst[1] = ["王外一"] print(lst) #切片赋值 #lst[0:3] = "宋佳ddddd" #注意这里,如果切片改的话,那么会把字符迭代了. print(lst) lst[0:5:2] = "宋佳1" #这里要注意,比果切片的步长不是1,切片的元素和赋值的元素必须一致,否则会报错.-1也会报错 print(lst) lst[-1:-5:-1] = "宋佳1"
1.4 列表的查询
列表的查询用for循环来查询.
示例:
#列表的查询 for w in lst: print(w)
1.5 列表的其他操作
主要有sort(),len(),count(),和reverse()
sort()排序,升序,从小到大, 这里要注意是对数字的排序,如果是字母的话,按字母表来排序.如果是中文的话,不能排序.如果是字序型数字,按个位数排序
关于字符型数字的排序示例如下:
#列表的查询 # for w in lst: # print(w) s = "dafgadgfaggagaeqqq" lst= ["20","3","3","501","111","6"] # lst.clear() # lst.extend(s) lst.sort() print(lst)
升序是通过下面的方法实现
lst.sort(reverse = True)
即sort方法中增加reverse的选项
count()
统计列表中元素出现的次数
示例:
lst = ["周星星","周润发","周杰伦","周星驰","刘德华","成龙","刘德华"] a = lst.count("刘德华") print(a)
reverse()
列表进行翻转
示例如下:
lst = ["周星星","周润发","周杰伦","周星驰","刘德华","成龙","刘德华"] # a = lst.count("刘德华") # print(a) lst.reverse() print(lst)
len()
获取列表的长度
示例代码如下:
l = len(lst) print(l)
2.列表的嵌套
列表的嵌套: 列表放列表就是嵌套,采用降维操作.一层一层的看就好.
示例:
li = [1, 5, True, "哈哈", ["张无忌", "wusir", "周芷若", "赵敏"], ["金庸", "琼瑶", "古龙", "孙晓"]] #将wusir拿到. 然后首字母大写. 再扔回去 li[4][1] = li[4][1].capitalize() print(li)
3.元组和元组的嵌套
元组: 俗称不可变的列表.又被成为只读列表, 元组也是python的基本数据类型之一, 用小括号括起来, 里面可以放任何数据类型
的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能改.不能删除.
元组主要有两点需要注意的:
(1). 元组定义的时候,如果只有一个元素,要加一个逗号
比如 tu = (1)这样是不行的,必须这样tu= (1,)
比如tu = ("lkjlkj") 这样也是不行的,必须这样tu = ("lkjlkj",)
(2).另一个需要注意的是元组是不可以修改的.但是元组的元素如果是可变的,那么这个元组的元素是可以修改的.注意,但不能替换.
这里元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可以变, 这取决于子元素是否是可变对
象.
示例:
tu = ("小说", "文集", "历史", ["麻花藤", "张三丰", "李嘉诚"], (1, 3)) #tu[1] = "我改" #这里会报错 tu[3].append("马云") print(tu) #这样是可以的 #可以改,但不能替换,比如下面这样会报错 tu[3] = ["我改"]
4.range
range可以帮我们获取一组数据,相当于是对整型数据的切片取值.
range(start, end,步长) # 切片
示例:
#取1到100的偶数 for w in range(0,100,2): print(w)
还有种默认用法
range(10)
是取0到9
示例:
for w in range(10): print(w)