列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或 所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。 鉴于列表通常包含多个元素,通常给列表指定一个表示复数的名称(如letters、digits或names)。 在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
如果你让Python将列表打印出来,Python将打印列表的内部表示,包括方括号:
['trek', 'cannondale', 'redline', 'specialized']访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。 要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[0]) 运行结果: trek
在Python中,第一个列表元素的索引为0,而不是1。第二个列表元素的索引为1。Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返 回最后一个列表元素。索引-2返回倒数第二个列表元素, 索引-3返回倒数第三个列表元素,以此类推。
bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[-1]) 运行结果: specialized
可像使用其他变量一样使用列表中的各个值。例如,你可以使用拼接根据列表中的值来创建消息。 下面来尝试从列表中提取第一款自行车,并使用这个值来创建一条消息:
bicycles = ['trek', 'cannondale', 'redline', 'specialized'] message = "My first bicycle was a " + bicycles[0].title() + "." print(message) 运行结果: My first bicycle was a Trek.
动手试一试
3-1 姓名:将一些朋友的姓名存储在一个列表中,并将其命名为 names。依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来。
names = ['aaa','bbb','ccc'] print(names[0]) print(names[1]) print(names[2])
3-2 问候语:继续使用练习 3-1 中的列表,但不打印每个朋友的姓名,而为每人打印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。
names = ['aaa','bbb','ccc'] message = "Hello," print(message + names[0] + "!") print(message + names[1] + "!") print(message + names[2] + "!")
3-3 自己的列表:想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的宣言,如“I would like to own a Honda motorcycle”
bicycles = ['aaa','bbb','ccc'] message = "I would like to own a " print(message + bicycles[0]) print(message + bicycles[1]) print(message + bicycles[2])修改、添加和删除元素 从列表中修改元素
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
names = ['aaa','bbb','ccc'] print(names) names[0] = "ddd" print(names) 运行结果: ['aaa', 'bbb', 'ccc'] ['ddd', 'bbb', 'ccc']从列表中添加元素
1、在列表末尾添加元素
方法append()将元素添加到列表末尾,而不影响列表中的其他所有元素。
names = ['aaa','bbb','ccc']
print(names)
names.append("ddd")
print(names)
运行结果:
['aaa', 'bbb', 'ccc']
['aaa', 'bbb', 'ccc', 'ddd']
2、在列表中插入元素
方法insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。
names = ['aaa','bbb','ccc'] print(names) names.insert(1,"ddd") print(names) 运行结果: ['aaa', 'bbb', 'ccc'] ['aaa', 'ddd', 'bbb', 'ccc']从列表中删除元素
1、使用del语句删除元素
使用del可删除任何位置处的列表元素,条件是知道其索引。
names = ['aaa','bbb','ccc'] print(names) del names[1] print(names) 运行结果: ['aaa', 'bbb', 'ccc'] ['aaa', 'ccc']
2、使用方法pop()删除元素
方法pop()可删除列表末尾的元素,并让你能够接着使用它。
names = ['aaa','bbb','ccc'] print(names) name = names.pop() print(names) print(name) 运行结果: ['aaa', 'bbb', 'ccc'] ['aaa', 'bbb'] ccc
3、弹出列表中任何位置处的元素
可以使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
names = ['aaa','bbb','ccc'] print(names) name = names.pop(1) print(names) print(name) 运行结果: ['aaa', 'bbb', 'ccc'] ['aaa', 'ccc'] bbb
4、根据值删除元素
有时候不知道要从列表中删除的值所处的位置,只知道要删除的元素的值,可使用方法remove()。
names = ['aaa','bbb','ccc']
print(names)
names.remove("bbb")
print(names)
运行结果:
['aaa', 'bbb', 'ccc']
['aaa', 'ccc']
动手试一试
3-4 嘉宾名单:如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的), 你会邀请哪些人?请创建一个列表,其中包含至少 3 个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。
names = ['aaa','bbb','ccc']
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
3-5 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。
- 以完成练习 3-4 时编写的程序为基础,在程序末尾添加一条 print 语句,指出哪位嘉宾无法赴约。
- 修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
- 再次打印一系列消息,向名单中的每位嘉宾发出邀请。
names = ['aaa','bbb','ccc']
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
print(names[1] + "无法参加晚餐")
names[1] = "ddd"
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
3-6 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。
- 以完成练习 3-4 或练习 3-5 时编写的程序为基础,在程序末尾添加一条 print 语 句,指出你找到了一个更大的餐桌。
- 使用 insert()将一位新嘉宾添加到名单开头。
- 使用 insert()将另一位新嘉宾添加到名单中间。
- 使用 append()将最后一位新嘉宾添加到名单末尾。
- 打印一系列消息,向名单中的每位嘉宾发出邀请。
names = ['aaa','bbb','ccc']
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
print("我找到了一张更大的餐桌")
names.insert(0,"ddd")
names.insert(2,"eee")
names.append("fff")
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
print("我想和您共进晚餐" + names[3])
print("我想和您共进晚餐" + names[4])
print("我想和您共进晚餐" + names[5])
3-7 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。
- 以完成练习 3-6 时编写的程序为基础,在程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。
- 使用 pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐。
- 对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。
- 使用 del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程 序结束时名单确实是空的
names = ['aaa','bbb','ccc']
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
print("我找到了一张更大的餐桌")
names.insert(0,"ddd")
names.insert(2,"eee")
names.append("fff")
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
print("我想和您共进晚餐" + names[3])
print("我想和您共进晚餐" + names[4])
print("我想和您共进晚餐" + names[5])
print("我只能邀请两位一起共进晚餐")
print(names.pop(2) + "很抱歉不能和您一起共进晚餐")
print(names.pop(2) + "很抱歉不能和您一起共进晚餐")
print(names.pop(2) + "很抱歉不能和您一起共进晚餐")
print(names.pop(2) + "很抱歉不能和您一起共进晚餐")
print(names[0] + "您仍在邀请之中")
print(names[1] + "您仍在邀请之中")
del names[0]
del names[0]
组织列表
sort()方法让你能够较为轻松地对列表进行按字母排序,sort()永久性地修改了列表元素的排列顺序
aaa = ['a','c','d','b'] aaa.sort() print(aaa) 运行结果: ['a', 'b', 'c', 'd']
还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数 reverse=True。
aaa = ['a','c','d','b'] aaa.sort(reverse=True) print(aaa) 运行结果: ['d', 'c', 'b', 'a']
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数 sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。如果要按与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。
aaa = ['a','c','d','b'] print(sorted(aaa)) print(aaa) 运行结果: ['a', 'b', 'c', 'd'] ['a', 'c', 'd', 'b']
要反转列表元素的排列顺序,可使用方法reverse()。方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此 只需对列表再次调用reverse()即可。
aaa = ['a','b','c','d'] aaa.reverse() print(aaa) 运行结果: ['d', 'c', 'b', 'a']确定列表长度
使用函数len()可快速获悉列表的长度。
aaa = ['a','b','c','d'] print(len(aaa)) 运行结果: 4
动手试一试
3-8 放眼世界:想出至少 5 个你渴望去旅游的地方。
- 将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
- 按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始 Python 列表。
- 使用 sorted()按字母顺序打印这个列表,同时不要修改它。
- 再次打印该列表,核实排列顺序未变。
- 使用 sorted()按与字母顺序相反的顺序打印这个列表,同时不要修改它。
- 再次打印该列表,核实排列顺序未变。
- 使用 reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
- 使用 reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来 的排列顺序。
- 使用 sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺 序确实变了。
- 使用 sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表, 核实排列顺序确实变了。
where = ['bbb','aaa','ccc','eee','ddd'] print(where) print(sorted(where) print(where) print(sorted(where,reverse=True) print(where) where.reverse() print(where) where.reverse() print(where) print(where.sort()) print(where.sort(reverse=True))
3-9 晚餐嘉宾:在完成练习 3-4~3-7 时编写的程序之一中,使用 len()打印一 条消息,指出你邀请了多少位嘉宾来与你共进晚餐。
names = ['aaa','bbb','ccc']
print("我想和您共进晚餐" + names[0])
print("我想和您共进晚餐" + names[1])
print("我想和您共进晚餐" + names[2])
print("我邀请了" + str(len(names)) + "位一起共进晚餐。")



