第1關(guān):列表的屬性與方法
任務(wù)描述
初始化一個空列表,輸入一個正整數(shù) n。
接下來,你將被要求輸入 n 個指令,每得到一個指令后,根據(jù)指令的字符串進(jìn)行對應(yīng)的功能操作。
指令形式及對應(yīng)功能如下:
insert i e: # 在第 i 個位置插入整數(shù) e。
print: # 輸出列表
remove e: # 刪除第一次出現(xiàn)的整數(shù) e .
append e: # 在列表的末尾插入整數(shù) e.
sort: # 按默認(rèn)規(guī)則排序.
pop: # 彈出列表最后一一個元素
reverse: # 列表元素逆序.
輸入格式????????????????????????????????????????????????????????????????
第一行輸入一個正整數(shù) n????????????????????????????????????????????????????????????????
隨后的 n 行,每行輸入一個如示例格式的命令(或命令加1或2個整數(shù),要求加入列表的必須是整數(shù))
輸出格式????????????????????????????????????????????????????????????????
每遇到“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關(guān):推導(dǎo)式與生成器
相關(guān)知識
推導(dǎo)式可以從一個數(shù)據(jù)序列構(gòu)建另一個新的數(shù)據(jù)序列的結(jié)構(gòu)體。本質(zhì)上可以將其理解成一種集合了變換和篩選功能的函數(shù),通過這個函數(shù)把一個序列轉(zhuǎn)換成另一個序列。????????????????????????????????????????????????????????????????
共有三種推導(dǎo)式:????????????????????????????????????????????????????????????????
- 列表(list)推導(dǎo)式????????????????????????????????????????????????????????????????
- 字典(dict)推導(dǎo)式????????????????????????????????????????????????????????????????
- 集合(set)推導(dǎo)式????????????????????????????????????????????????????????????????
列表推導(dǎo)式是一種創(chuàng)建新列表的便捷的方式,通常用于根據(jù)一個列表中的每個元素通過某種運算或篩選得到另外一系列新數(shù)據(jù),創(chuàng)建一個新列表。 列表推導(dǎo)式由1個表達(dá)式跟一個或多個for 從句、0個或多個if從句構(gòu)成。
# 列表推導(dǎo)式由1個表達(dá)式跟一個或多個for 從句、0個或多個if從句構(gòu)成。
# 列表推導(dǎo)式置于一對方括號之中
[x**2 for x in range(10)] #計算range(10)中每個數(shù)的平方,推導(dǎo)出新列表
# 得到新列表[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
for前面是一個表達(dá)式,in 后面是一個列表或能生成列表的對象。將in后面列表中的每一個數(shù)據(jù)作為for前面表達(dá)式的參數(shù),再將計算得到的序列轉(zhuǎn)成列表。if是一個條件從句,可以根據(jù)條件返回新列表。????????????????????????????????????????????????????????????????
for前面也可以是一個內(nèi)置函數(shù)或自定義函數(shù),例如:
# 自定義函數(shù)f(x)
def fun(x):
return x + x ** 2 + x ** 3
# 返回 x + x ** 2 + x ** 3
y = [fun(i) for i in range(10)] # 列表推導(dǎo)式,按函數(shù)fun(x),推導(dǎo)出新列表
print(y) # 輸出列表[0, 3, 14, 39, 84, 155, 258, 399, 584, 819]
列表推導(dǎo)式還可以用條件語句(if從句)對數(shù)據(jù)進(jìn)行過濾,用符合特定條件的數(shù)據(jù)推導(dǎo)出新列表,例如:
def fun(x):
return x + x**2 + x ** 3
# 返回x + x ** 2 + x ** 3
# 列表推導(dǎo)式,根據(jù)原列表中的偶數(shù),推導(dǎo)新列表
y = [fun(i) for i in range(10) if i%2 is 0]
print(y) # 輸出列表[0, 14, 84, 258, 584]
可以用多個for從句對多個變量進(jìn)行計算,例如:文章來源:http://www.zghlxwxcb.cn/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)]
列表推導(dǎo)式應(yīng)用實例文章來源地址http://www.zghlxwxcb.cn/news/detail-713125.html
ls = [-4, -2, 0, 2, 4]
print([x*2 for x in ls])
到了這里,關(guān)于【頭歌-Python】Python第六章作業(yè)(初級)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!