第1关:列表的属性与方法
任务描述
初始化一个空列表,输入一个正整数 n。
接下来,你将被要求输入 n 个指令,每得到一个指令后,根据指令的字符串进行对应的功能操作。
指令形式及对应功能如下:
insert i e: # 在第 i 个位置插入整数 e。
print: # 输出列表
remove e: # 删除第一次出现的整数 e .
append e: # 在列表的末尾插入整数 e.
sort: # 按默认规则排序.
pop: # 弹出列表最后一一个元素
reverse: # 列表元素逆序.
输入格式
第一行输入一个正整数 n
随后的 n 行,每行输入一个如示例格式的命令(或命令加1或2个整数,要求加入列表的必须是整数)
输出格式
每遇到“print”时,在新的一行输出列表
示例 1
- 输入:
12
insert 0 5
insert 1 10
insert 0 6
print
remove 6
append 9
append 1
sort
print
pop
reverse
print
- 输出:
[6, 5, 10]
[1, 5, 9, 10]
[9, 5, 1]
参考代码
l = []
n = int(input())
while n:
q = input().split(' ')
if q[0] == "insert":
l.insert(int(q[1]),int(q[2]))
elif q[0] == "remove":
l.remove(int(q[1]))
elif q[0] == "append":
l.append(int(q[1]))
elif q[0] == "sort":
l.sort()
elif q[0] == "pop":
l.pop()
elif q[0] == "reverse":
l.reverse()
elif q[0] == "print":
print(l)
n -= 1
第2关:推导式与生成器
相关知识
推导式可以从一个数据序列构建另一个新的数据序列的结构体。本质上可以将其理解成一种集合了变换和筛选功能的函数,通过这个函数把一个序列转换成另一个序列。
共有三种推导式:
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
列表推导式是一种创建新列表的便捷的方式,通常用于根据一个列表中的每个元素通过某种运算或筛选得到另外一系列新数据,创建一个新列表。 列表推导式由1个表达式跟一个或多个for 从句、0个或多个if从句构成。
# 列表推导式由1个表达式跟一个或多个for 从句、0个或多个if从句构成。
# 列表推导式置于一对方括号之中
[x**2 for x in range(10)] #计算range(10)中每个数的平方,推导出新列表
# 得到新列表[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
for前面是一个表达式,in 后面是一个列表或能生成列表的对象。将in后面列表中的每一个数据作为for前面表达式的参数,再将计算得到的序列转成列表。if是一个条件从句,可以根据条件返回新列表。
for前面也可以是一个内置函数或自定义函数,例如:
# 自定义函数f(x)
def fun(x):
return x + x ** 2 + x ** 3
# 返回 x + x ** 2 + x ** 3
y = [fun(i) for i in range(10)] # 列表推导式,按函数fun(x),推导出新列表
print(y) # 输出列表[0, 3, 14, 39, 84, 155, 258, 399, 584, 819]
列表推导式还可以用条件语句(if从句)对数据进行过滤,用符合特定条件的数据推导出新列表,例如:
def fun(x):
return x + x**2 + x ** 3
# 返回x + x ** 2 + x ** 3
# 列表推导式,根据原列表中的偶数,推导新列表
y = [fun(i) for i in range(10) if i%2 is 0]
print(y) # 输出列表[0, 14, 84, 258, 584]
可以用多个for从句对多个变量进行计算,例如:文章来源:https://www.toymoban.com/news/detail-713125.html
ls = [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
print(ls) # 输出[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
列表推导式应用实例文章来源地址https://www.toymoban.com/news/detail-713125.html
ls = [-4, -2, 0, 2, 4]
print([x*2 for x in ls])
到了这里,关于【头歌-Python】Python第六章作业(初级)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!