上集回顾:python学习笔记(一)——hello world、变量、字符串、数字、禅
一、概述
-
在python中,用方括号表示列表,用,分割列表中的元素
family = ['dad','mom','sister','brother','me'] print(family)
如果直接打印,将会原样输出,包括方括号,就像这样
-
访问列表中的元素,只需指出列表名称,再指出元素索引,将其放入方括号中即可,索引以0为开始值。
print(family[0])
输出 dad
-
可以和之前的大小写结合起来,使代码更好看
print(family[2].title())
输出 :Sister
-
对于不知道长度,或者长度比较长的列表,还可以用负数来表示下标,倒数第一个为-1,倒数第二个为-2.以此类推
print(family[-1]) print(family[-2])
输出:
-
可以使用列表中的值来创建消息
message = "I have a " + family[2] + " in my family." print(message)
输出:I have a sister in my family.
二、编辑列表元素
2.1修改
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值
list = ['l1','l2','l3','l4']
print("修改前:" + str(list))
list[0] = 'L1'
print("修改后:" + str(list) + '\n')
输出
2.2添加
print("原列表:" + str(list))
- append() 在列表末尾添加元素
# list.append('值') list.append('l4') print("在列表末尾增加新元素后:" + str(list))
- insert() 在指定位置插入元素
# list.列表名(位置,'值') list.insert(2,'l2.5') print("在指定位置2插入新元素后:" + str(list) + '\n')
输出
2.3删除
print("原列表:" + str(list))
- del语句 删除指定位置元素
del list[2] print("执行del list[2]后的列表:" + str(list))
- pop() 弹出指定位置元素并可以再次使用
# 可通过在括号中输入下标来指定要删除的值,不输入默认为最后一个元素。 # 将list中指定元素弹出并存储到pop_list中 pop_list = list.pop(2) print("执行pop(2)方法后的列表:" + str(list)) print("打印弹出的元素:" + pop_list)
pop() 和del语句的区别
如果删除元素之后不再使用该元素 就用del语句
如果删除之后还要再次使用该值,就使用pop()方法。
- remove() 根据值取出元素(重复的值只会取出一个)
list.remove('l4') print("执行remove('l4')后的列表:" + str(list))
# 将要取出的值存在一个新变量中,之后就可以通过调用该变量继续使用该元素 too_ugly = 'L1' list.remove(too_ugly) print("打印取出的元素too_ugly:" + too_ugly) print("执行list.remove(too_ugly)后列表:" + str(list))
输出:
三、组织列表
3.1 排序(假设列表内容都为小写字母开头)
list = ['a1','d4','c3','b2']
- sorted() 临时排序
print("原列表:" + str(list)) print("临时性排序的列表:" + str(sorted(list))) print("执行完临时性排序后再次打印列表:" + str(list))
- sort() 永久性排序
list.sort() print("执行完永久性正序排列后的列表" + str(list))
注意:
sort是方法,所以使用方法为list.sort()
sorted是函数,所以使用方法为sorted(list)
- reverse = True 倒序排列(按小写字母)
print("临时性倒序排列的列表" + str(sorted(list,reverse=True))) print("执行完临时性倒序排列的列表" + str(list)) list.sort(reverse=True) print("执行完永久性倒序排列的列表" + str(list)) print(str(list))
输出
3.2反转元素
reverse() 永久性反转列表元素排列顺序,不过恢复原列表只需再次执行reverse即可
```
list_reverse = ['sd','d','w','q','r','e']
list_reverse.reverse()
print(list_reverse)
list_reverse.reverse()
print(list_reverse)
```
3.3确定列表长度
len() 确定列表长度
print(len(list_reverse))
输出:6
四、练习
-
3-1 姓名: 将一些朋友的姓名存储在一个列表中,并将其命名为names 。依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来。
names = ['name1','name2','name3'] print(names[0]) print(names[1]) print(names[2] + "\n")
-
3-2 问候语: 继续使用练习3-1中的列表,但不打印每个朋友的姓名,而为每人打印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。
message = " ,how are you going?" print(names[0].title() + message) print(names[1].title() + message) print(names[2].title() + message + "\n")
-
3-3 自己的列表: 想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的宣言,如“I would like to own a Honda motorcycle”。
traffic = ['walk','bus','bike'] print("I usually " + traffic[0] + " to school entrance,and than take the school " + traffic[1] + ".But sometimes I will by " + traffic[2])
-
3-4 嘉宾名单 :如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的),你会邀请哪些人?请创建一个列表,其中包含至少3个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。
inter_list = ['person1','person2','person3'] message = " ,would you like join a party in my house today's evening?" print('Dear ' + inter_list[0].title() + message) print('Dear ' + inter_list[1].title() + message) print('Dear ' + inter_list[2].title() + message + "\n")
-
3-5 修改嘉宾名单 :你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。
-
以完成练习3-4时编写的程序为基础,在程序末尾添加一条print 语句,指出哪位嘉宾无法赴约。
-
修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
-
再次打印一系列消息,向名单中的每位嘉宾发出邀请。
print(inter_list[2] + "can't coming") inter_list[2] = 'insteadPerson1' print('Dear ' + inter_list[0].title() + message) print('Dear ' + inter_list[1].title() + message) print('Dear ' + inter_list[2].title() + message + "\n")
-
-
3-6 添加嘉宾 :你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。
-
以完成练习3-4或练习3-5时编写的程序为基础,在程序末尾添加一条print 语句,指出你找到了一个更大的餐桌。
-
使用insert() 将一位新嘉宾添加到名单开头。
-
使用insert() 将另一位新嘉宾添加到名单中间。
-
使用append() 将最后一位新嘉宾添加到名单末尾。
-
打印一系列消息,向名单中的每位嘉宾发出邀请。
message_newtable = " , I found a new table which is bigger than the old one" inter_list.insert(0,'newPerson0') inter_list.insert(1,'newPerson1') inter_list.append('newPerson2') print(inter_list) print('Dear ' + inter_list[0].title() + message_newtable) print('Dear ' + inter_list[1].title() + message_newtable) print('Dear ' + inter_list[2].title() + message_newtable) print('Dear ' + inter_list[3].title() + message_newtable) print('Dear ' + inter_list[4].title() + message_newtable) print('Dear ' + inter_list[5].title() + message_newtable + "\n")
-
-
3-7 缩减名单 :你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。
-
以完成练习3-6时编写的程序为基础,在程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。
-
使用pop() 不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐。
-
对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。
-
使用del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的。
print("I only can invite two guest") delFirst = inter_list.pop() delSecond = inter_list.pop(1) delThird = inter_list.pop(1) delFourth = inter_list.pop(1) del_list = [delFirst,delSecond,delThird,delFourth] message_sorry = ', I am sorry to tell you I can not invite you' print(del_list[0].title() + message_sorry) print(del_list[1].title() + message_sorry) print(del_list[2].title() + message_sorry) print(del_list[3].title() + message_sorry) print(inter_list) message_stillInvite = ', Don not forget to come' print(inter_list[0].title() + message_stillInvite) print(inter_list[1].title() + message_stillInvite) del inter_list[0] del inter_list[0] print(inter_list)
-
-
3-8 放眼世界 :想出至少5个你渴望去旅游的地方。
-
将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
-
按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python列表。
-
使用sorted() 按字母顺序打印这个列表,同时不要修改它。
-
再次打印该列表,核实排列顺序未变。
-
使用sorted() 按与字母顺序相反的顺序打印这个列表,同时不要修改它。
-
再次打印该列表,核实排列顺序未变。
-
使用reverse() 修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
-
使用reverse() 再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
-
使用sort() 修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。
-
使用sort() 修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。
desire = ['new zealand','hangzhou','yiwu','jingdezhen','tibet'] print(desire) print(sorted(desire)) print(desire) print(sorted(desire,reverse=True)) print(desire) desire.reverse() print(desire) desire.reverse() print(desire) desire.sort() print(desire) desire.sort(reverse=True) print(desire)
-
-
3-9 晚餐嘉宾 :在完成练习3-4~练习3-7时编写的程序之一中,使用len() 打印一条消息,指出你邀请了多少位嘉宾来与你共进晚餐。
print(len(del_list))
-
3-10 尝试使用各个函数 :想想可存储到列表中的东西,如山岳、河流、国家、城市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表,然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。
countries = ['china','us','usa','german','french'] print(countries) countries.append('cuba') countries.insert(1,'australia') print(countries) del countries[2] countries.pop(2) countries.remove('german') print(countries) print(sorted(countries)) print(sorted(countries,reverse=True)) print(countries) countries.reverse() print(countries) countries.sort() print(countries) countries.sort(reverse=True) print(countries)