python学习第四章

时间:2023-01-01 11:48:45

本节主要内容:
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)