列表的简介
1.列表是什么
列表由一系列按特定顺序排列的元素组成。不仅可以创建包含字母表中所有字母、数字或所有家庭成员列表,还可以将任何东西加入列表,其中元素之间可以没有任何关系。
在Python中,用方括号表示列表,用逗号分隔其中的元素。
test = ["name",12,"redline"]
print(test)
1.1访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在括号内
test = ["name",12,"redline"]
print(test[0])
1.2 索引从0而不是1开始
在Python中,第一个列表元素的索引为0,而不是1。
test = ["name",12,"redline"]
print(test[0])
print(test[1])
print(test[2])
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素。
test = ["name",12,"redline"]
print(test[-1])
这个语法在你不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引。
1.3使用列表中的各个值
你可以像使用其他变量一样使用列表中的各个值。比如,可以使用f字符串根据列表中的值来创建消息。
2.修改、添加和删除元素
2.1修改列表元素
修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该索引位置上的新值,直接覆盖原本的函数。
test = ["name",12,"redline"]
print(test)
test[1]="love"
print(test)
2.2在列表中添加元素
2.2.1在列表末尾添加元素
在列表中添加新元素时,最简单的方式是将元素追加到列表末尾。
变量+.append(“…”)
对象.方法名(…)
append()方法将元素添加到列表末尾,而不影响列表中的其他所有元素。
test = ["name",12,"redline"]
test.append("love")
print(test)
这个方法直接修改原列表,不需要重新进行赋值。
2.2.2在列表中插入元素
需要提供指定新元素的索引和值
变量+insert(位置,新元素)
test = ["name",12,"redline"]
test.insert(1,"love")
print(test)
这个操作是将列表中已经存在的元素都右移一个位置。
2.3从列表中删除元素
2.3.1使用del语句删除元素
如果指导要删除的元素在列表中的位置,可使用del语句
del+位置
test = ["name",12,"redline"]
test.insert(1,"love")
print(test)
del test[2]
print(test)
使用del可删除任意位置的列表元素,只需知道其索引即可。
使用del语句将值从列表中删除后,你就无法访问它了。
2.3.2使用pop()方法删除元素
有时候我们需要将元素从列表中删除,并接着使用它的值。
pop()方法删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
变量.pop()
test = ["name",12,"redline"]
new=test.pop()
print(test)
print(new)
2.3.3删除列表中任意位置的元素
实际上,也可以使用pop()删除列表中任意位置元素,只需要在括号中指定要删除的元素的索引即可。
变量.pop(位置)
test = ["name",12,"redline"]
new=test.pop(0)
print(test)
print(new)
判断标准:如果要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果要在删除元素后继续使用它,就使用pop()方法。
2.3.4根据值删除元素
有时候我们不知道要从列表中删除的值在那个位置。如果只知道要删除的元素的值,可使用remove()方法。
直接在原列表上生效,不应该对变量重新赋值。
变量.remove(值)
test = ["name",12,"redline"]
test.remove(12)
print(test)
test.remove("name")
print(test)
使用remove()从列表中删除元素后,也可继续使用它的值。
注意:remove()方法只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环,确保将每个值都删除。
3.管理列表
3.1使用sort()方法对列表进行永久排序
Python方法sort()可以轻松的对列表进行排序
变量.sort()
test = ["name","love","redline"]
test.sort()
print(test)
sort()方法能永久地修改列表元素的排序顺序。
还可以按与字母顺序相反的顺序排列列表元素,只需向sort()方法传递参数,reverse=True即可。
test = ["name","love","redline"]
test.sort(reverse=True)
print(test)
3.2使用sorted()函数对列表进行临时排序
要保留列表元素原来的排列顺序,并以特定的顺序呈现它们,可使用sorted()函数。sorted()函数让你能够按特定顺序显示列表元素,同时不影响它们在列表中的排列顺序。
test = ["name","love","redline"]
print(test)
print(sorted(test))
print(test)
注意:在调用sorted()函数后,列表元素的排列顺序并没有变化。如果要按与字母顺序相反的顺序显示列表,也可向sorted()函数传递参数reverse=True。
3.3反向打印列表
要反转列表元素的排列顺序,可使用reverse()方法。
变量.reverse()
test = ["name","love","redline"]
print(test)
test.reverse()
print(test)
注意:reverse()不是按与字母顺序相反的顺序排列列表元素,只是反转列表元素的排列顺序。
reverse()方法会永久地修改列表的排列顺序,但可以随时恢复到原来的排列顺序,只需对列表再次调用reverse()即可。
3.4确定列表的长度
使用len()函数可快速获悉列表的长度,并返回列表里元素的数量。
test = ["name","love","redline"]
len(test)
print(len(test))
4.练习
练习1:姓名
将一些朋友的姓名存储在一个列表中,并将其命名为names。并将每个人的姓名打印下来。
names = ["xiaoyu","xiaochen","xiaoliu"]
print(names[0])
print(names[1])
print(names[2])
练习2:问候语
根据练习1向每人发一句问候语 。每条都包含相同的问候语,但最前面应是朋友的姓名。
names = ["xiaoyu","xiaochen","xiaoliu"]
greeting = "hello "
print(greeting+ names[0])
print(greeting+ names[1])
print(greeting+ names[2])
练习3:嘉宾名单
邀请任何一个人共进晚餐,并打印下来。
names = ["xiaoyu","xiaochen","xiaoliu"]
invite = "一起吃个饭吧? "
print(invite+ names[0])
print(invite+ names[1])
print(invite+ names[2])
练习4:修改嘉宾名单
刚得知有位嘉宾无法赴约,因此要邀请另外一位嘉宾。
names = ["xiaoyu","xiaochen","xiaoliu"]
print(names[0]+ "不能赴约")
names[0]="xiaoyuan"
invite = "一起吃个饭吧? "
print(invite+ names[0])
print(invite+ names[1])
print(invite+ names[2])
练习5:添加嘉宾
想要邀请更多的嘉宾来一起吃饭。
names = ["xiaoyu","xiaochen","xiaoliu"]
print("找到了更大的餐桌! ")
names.insert(0,"xiaolin")
names.insert(2,"xiaozhang")
names.append("xiaodeng")
invite = "一起吃个饭吧? "
print(invite+ names[0])
print(invite+ names[1])
print(invite+ names[2])
print(invite+ names[3])
print(invite+ names[4])
print(invite+ names[5])