1.列表类型基础
在Python中,用中括号"[ ]"来表示列表,并用逗号来分隔其中的元素。列表由一系列按特定顺序排序的元素组成,可以创建包含字母,数字(0~9)的列表,也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
1.1创建数字列表
在Python中,可以使用方法range()创建数字列表。例如使用range()创建一个包含3个数字。
numbers = list(range(1,4))
print(numbers)
[1, 2, 3]
在上面这两行代码中要注意range()的结尾参数是4,才能创建3个列表元素
比如下面这个例子是创建一个偶数列表
num2 = list(range(2,11,2))
print(num2)
[2, 4, 6, 8, 10]
1.2访问列表中的值
在Python程序中,因为列表是一个有序集合,所以要访问列表中的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可以指出列表名称,在指出元素的索引,并将其放在方括号内。记住是Python的序号是从“0”开始的哦。
list1 = ["小明","小红",1,2]
list2 = [1,2,3,4,5,6,7,8]
print("list1:",list1[0])
print("list2:",list2[1:5])
list1: 小明
list2: [2, 3, 4, 5]
在Python中,为访问最后一个列表元素提供了一种特殊的语法。通过将索引指定为"-1",可以让Python返回最后一个列表元素。
list = [1,2,3,4,5,6,7,8]
print(list[-1])
8
当这个列表有好多好多元素的时候,而且只需要后面的元素下,这个方法非常好用,同样可以尝试尝试"-2","-3",注意从前面取的话是从0开始,从后面取的话是从-1开始。
2.列表的基本操作
在Python中,经常需要对列表进行操作,这也是可以实现项目的指定功能。
2.1更新列表元素
更新列表元素是指修改列表元素中的值,修改列表元素的语法与访问列表元素的语法相似。例如,让我们进入一个小场景吧,有一场比赛需要三个人团队完成,指导老师选择了小明,小红,小军三位实力担当去比赛,不过指导老师出于对不确定因素的考虑再挑选了一名实力仅次于他们的同学小华作为替补,就在比赛的前五分钟,小明突然身体感到不适无法参加比赛,这时替补小华就代替小明上场了,这时指导老师需要马上把比赛的名单更换一下后上交比赛委员会,这时指导老师打开Python改名单。编完这个背景,相信大家看下面的例子就会很好理解。
name = ["小明","小红","小军"]
print(name)
name[0] = "小华"
print(name)
['小明', '小红', '小军']
['小华', '小红', '小军']
2.2插入新的元素
插入新的元素是指在指定列表中添加新的列表元素。在Python中,可以通过这种方式insert()插入新的元素,比如还是以上面霖小白自己编的这个背景来举例子。
要开始出去比赛时,比赛委员会要求在原本参赛队友的名单下如果有替补队友的需要再加入进去,这时,指导老师打开Python。
name = ["小明","小红","小军"]
print(name)
name.insert(0,"小华")
print(name)
['小明', '小红', '小军']
['小华', '小明', '小红', '小军']
如果要在列表末尾添加就使用append()添加,比如,指导老师把添加好的名单给比赛委员会,但是工作人员说为了区分替补人员,需要把替补人员添加到后面。这时,指导老师重新改了名单。
name = ["小明","小红","小军"]
print(name)
name.append("小华")
print(name)
['小明', '小红', '小军']
['小明', '小红', '小军', '小华']
2.3在列表中删除元素
在列表中删除元素是指在列表中删除某个或多个已经存在的元素。
使用del语句删除
如果知道要删除的元素在列表中的具体位置,可使用del语句实现删除功能。
比如咱们还是依靠上面那个比赛的背景来举例,小明因为突然身体不适所以不能参加比赛,所以现在需要在上面的名单上把小明删去。
name = ["小明","小红","小军","小华"]
print(name)
del name[0]
print(name)
['小明', '小红', '小军', '小华']
['小红', '小军', '小华']
使用pop()删除元素
在Python中,当将某个元素从列表中删除后,有时需要接着使用这个元素的值。可以通过pop()删除末尾的元素,并且能够接着使用它。
而且使用pop()函数可以删除列表中任何位置的元素,这只须在括号中指定要删除的元素的索引即可实现。比如在下面的名单下,如果小明身体没有突然刚到不适的话,那么比赛就需要把替补小华删去。
name = ["小明","小红","小军","小华"]
print(name)
name.pop(3)
print(name)
['小明', '小红', '小军', '小华']
['小明', '小红', '小军']
根据元素值删除元素
有时候我们并不知道元素的具体位置在哪里,这时可以运用remove()来实现,里面直接输入元素就可以了,比如跟上面的例子一样,加入指导老师并不知道小华在名单的位置,但是小明没有身体不适的情况下,指导老师就可以用remove()去实现。
name = ["小明","小红","小军","小华"]
print(name)
name.remove("小华")
print(name)
['小明', '小红', '小军', '小华']
['小明', '小红', '小军'
指导老师说我太难了
3.列表排列处理
在创建一个列表时,里面元素的排列顺序常常是无法预测的,因为我们肯定不可能控制数据的顺序,但是在Python程序中,我们常常需要以特定的顺序显示列表中的信息。例如我们需要保留列表元素最初的排列顺序,有时候又需要调整排列顺序。所以呢,我们也要对列表排列进行处理呢。
3.1使用方法sort()对列表进行永久性排序
比如霖小白再编一个举例背景,比如在一个水果摊卖水果以及会玩Python的老板,一天,老板觉得自己列表里面的水果太乱了,想要按字母顺序排序。
fruits = ["banana","peach","organge","watermelon","apple"]
fruits.sort()
print(fruits)
['apple', 'banana', 'organge', 'peach', 'watermelon']
在上面的代码中,第二行使用了方法sort()永久性地修改了列表元素的排列顺序。现在,列表fruits中的元素是按字母顺序排列的,再也无法恢复到原来的排列顺序。当然也可以与字母排序相反,只须向sort()方法传递参数reverse=True即可。
fruits = ["banana","peach","organge","watermelon","apple"]
fruits.sort(reverse=True)
print(fruits)
['watermelon', 'peach', 'organge', 'banana', 'apple']
3.2使用方法sorted()对列表进行临时排序
在Python中,要想既保留列表元素原来的排列顺序,同时又想以特定的顺序显示它们,此时可以使用方法sorted()实现。方法sorted()的功能是按照特定顺序显示列表中的元素,同时不影响它们在列表中的原始排列顺序。
fruits = ["banana","peach","organge","watermelon","apple"]
print("列表中原来的排列顺序是:")
print(fruits)
print("\n经过排列处理后的顺序")
print(sorted(fruits))
print("\n再次显示列表中原来的排列顺序")
print(fruits)
列表中原来的排列顺序是:
['banana', 'peach', 'organge', 'watermelon', 'apple']
经过排列处理后的顺序
['apple', 'banana', 'organge', 'peach', 'watermelon']
再次显示列表中原来的排列顺序
['banana', 'peach', 'organge', 'watermelon', 'apple']
3.3获取列表长度
在Python中,我们可以使用方法len()函数快速获取列表的长度。
fruits = ["banana","peach","organge","watermelon","apple"]
print(len(fruits))
list1 = list(range(6))
print(len(list1))
5
6
4.列表的高级操作
4.1列表中的运算符
在Python中,在列表中可以使用“+”和“*”运算符,这两个运算符的功能与在字符串相似。其中“+”运算符用于组合列表,“*”运算符用于重复输出列表。
Python表达式 | 结果 | 描述 |
---|---|---|
len([1,2,3]) | 3 | 长度 |
[1,2,3]+[4,5,6] | [1,2,3,4,5,6] | 组合 |
[“Hi!”]*4 | [“Hi!”,“Hi!”,“Hi!”,“Hi!”] | 重复 |
3 in [1,2,3] | True | 显示元素是否存在于列表中 |
4.2列表截取与拼接
在Python中,可以使用“L”表达式实现列表截取与字符串操作功能,例如代码“L=[“apple”,“banana”,"peach”]"的操作结果
Python表达式 | 结果 | 描述 |
---|---|---|
L[2] | “peach” | 读取第三个元素 |
L[-2] | “banana” | 从右侧开始读取倒数第二个元素 |
L[1:] | [“banana”,“peach”] | 输出从第二个元素开始后的所有元素 |
4.3列表嵌套
列表嵌套是指一个已经存在的列表中创建其他新的列表。
a = ["a","b","c"]
n = [1,2,3]
x = [a,n]
print(x) # 同时输出列表a和列表n的值
print(x[0]) # 输出x中位值为0的元素,也就是列表a的值
print(x[0][1]) # 输出x中位值为0的列表中位值为1的元素值
[['a', 'b', 'c'], [1, 2, 3]]
['a', 'b', 'c']
b
4.4获取列表元素中的最大值和最小值
在Python中可以通过方法max()获取列表的最大值,使用min()函数可以获取列表中的最小值。格式如下,max(list)、min(list)。
list1 = [754,829,42,922,12,3,63]
print(min(list1))
print(max(list1))
3
922
4.5追加其他列表中的值
在Python中,可以通过方法extend()在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。使用方法extend()的语法格式:list.extend()
list1 = [4,6,8]
list2 = list(range(4))
list1.extend(list2)
print(list1)
[4, 6, 8, 0, 1, 2, 3]
4.6在列表中统计某元素出现的次数
在Python中,可以通过方法count()在列表中统计某元素出现的次数,使用方法就是:list.count()
list1 = ["123","223","112","123","224","111","224","123"]
print(list1.count("123"))
print(list1.count("224"))
3
2
4.7清空列表中的元素
可以使用方法clear()清空列表中的元素
list1 = ["123","223","112","123","224","111","224","123"]
list1.clear()
print(list1)
[]
现在代码运行的结果就已经是把列表给清空了。
4.8复制列表中的元素
可以使用copy()函数复制列表中的元素
list1 = ["123","223","112","123","224","111","224","123"]
list2 = list1.copy()
print(list1)
print(list2)
['123', '223', '112', '123', '224', '111', '224', '123']
['123', '223', '112', '123', '224', '111', '224', '123']
4.9获取列表中的某个元素的索引
在Python中,可以使用方法index()获取列表中某个元素的具体索引位置,只能在列表中找出元素第一次出现的索引的位置。
list1 = ["123","223","112","123","224","111","224","123"]
print("223的位置:",list1.index("223"))
223的位置: 1
5.使用元组类型
在Python中,可以将元组看成一种特殊的列表,唯一不同的是,元组内的数据元素是不变的。
5.1创建并访问元组
在Python中,创建元组的基本形式是以小括号“()”将数据元素括起来,各个元素之间用逗号“,”隔开。如果把元组比作人的话,那么下面这两个元组就是合法居民。
tup1 = ("霖小白","在看","赞",888,666)
tup2 = (1,2,3,4,5,6,7,8)
python语言是允许创建一个空的元组,例如下面就是创建了一个空的元组。
tup1 = ()
当元组中只包含一个元素时,需要在元素后面添加逗号","。例如下面这个代码
tup1 = (50,)
在Python中,元组与字符串和列表类似 索引也是从0开始的,并且也可以进行截取和组合等操作。例如下面这一段代码
tup1 = ("霖小白","在看","赞",888,666)
tup2 = (1,2,3,4,5,6,7,8)
print(tup1[0],tup1[4])
print(tup2[1:5])
霖小白 666
(2, 3, 4, 5)
在Python程序中,还可以使用for循环来遍历元组中的所有元组值,例如下面这一个例子。
wishes = ("霖小白","在看","赞",888,666)
print("元组wishes的数据元素有:")
for wish in wishes:
print(wish)
元组wishes的数据元素有:
霖小白
在看
赞
888
666
咱们再延伸一个小例子,将元组和列表互转。
tup = (1,2,3,4,5,6)
print(list(tup))
[1, 2, 3, 4, 5, 6]
num = (1,2,3,4,5,6)
print(tuple(num))
(1, 2, 3, 4, 5, 6)
另外,Python中的元组和字符串一样,元组之间可以使用“+”号和“*”号进行运算。这就意味着可以对元组进行组合和复制,运算后会生成一个新的元组。
操作代码 | 结果 | 功能 |
---|---|---|
len((1,2,3)) | 3 | 计算元素个数 |
(1,2,3)+(4,5,6) | (1,2,3,4,5,6) | 连接 |
(“霖小白”)*3 | (“霖小白”,“霖小白”,“霖小白”) | 复制 |
3 in (1,2,3) | True | 判断元素是否存在 |
for x in (1,2,3): print(x) | 1 2 3 | 迭代 |
5.2修改元组
再Python程序中,元组一旦创立后就是不可以修改的。但是在现实程序应用中,我们是可以对元组进行连接组合的。
tup1 = (12,24,36)
tup2 = ("abc","xyz")
tup3 = tup1 +tup2
print(tup3)
(12, 24, 36, 'abc', 'xyz')
注意不可以这样修改,tup1 [0] = 100 ,这样是不可以的。
在Python中,虽然有语法规定不能修改元组内的元素值,元组是个不可修改的序列,但是可以给存储元组的变量赋值。下面举一个修改元组的值的小例子
int1 = (123,456)
print("原来的值是:")
for bag in int1:
print(bag)
int1 = (666,888)
print("修改后的值:")
for bag in int1:
print(bag)
原来的值是:
123
456
修改后的值:
666
888
在上述代码中定义了一个元组“int1”,然后修改了元组变量值“int1”。执行后输出修改后的元组值。
6.字符串
有着打印功能的print()函数里面都会带有单引号或双引号的内容,而在代码运行后引号就不见了,所以带有引号里的内容就是字符串。在Python程序中,字符串类型“str”是最常用的数据类型。可以使用引号(单引号和双引号)来创建字符串。
单引号字符串与双引号字符串本质上是相同的。但当字符串内含有单引号时,如果用单引号字符串,就会导致无法区分字符串内的单引号与字符串标志的单引号,因此要使用转义字符串(下文会分享到)。如果用双引号字符串,在字符串中直接书写单引号即可。
6.1 访问字符串中的值
在Python程序中,字符串还可以通过序号(记住记住一定要记住Python中顺序的序号是从0开始,倒序的序号是从-1开始)来取出其中某个字符。在这里,就不得不说说“[ ]”这个,这个就是Python中的列表,比如[0:1]表示取这一字符串第一位,[1:5]表示截取字符串中的第2-5位,其他有关列表的内容这篇分享就不详细说啦。下面来一个很简单的小例子
“abcde”[1]取得的值是”b”
下面放一个实现截取与拼接的小实例
运行结果为
在现实应用中,还可以通过字符串的str[beg:]、str[:end]、str[beg:end]、以及str[:-index]方法实现截取操作,是不是一脸懵,其实霖小白也是一脸懵,不过霖小白丢上来的这一大段代码中就可以很好的理解了,可以跟运行结果一起看比较好理解。
运行结果
6.2 更新字符串
在Python程序中,开发者是可以对已存在的字符串进行修改,并赋值给另一个变量滴。
下面霖小白还是丢上来三行小代码,大家就清楚了。
代码运行结果为
6.3转义字符
在Python程序中,当需要在字符中使用特殊字符时,需要用到以反斜杠“\”表示的转义字符。
下面我们来看看这一个使用转义字符的小实例吧
运行结果为
使用“r”显示了原始字符串,有时我们并不想让转义字符生效,这时就可以用r来定义原始字符串。
6.4格式化字符串
Python语言支持格式化字符串的输出功能,虽然这样可能会用到非常复杂的表达式,但是在大多数情况下,只需要将一个值插入到一个字符串格式符“%”中就可以了。
比如,“%d”代表格式化整数。