Powered by:AB_IN 局外人
感谢jtq大佬指点。
题记:终于会调颜色和大小了,矢车菊篮。i了i了。
知识都是熬夜 肝出来的。
上代码。
lst=list()#list[]是个空列表,list()是声明一个列表
while True:
try:
tmp=list(map(int,input().split('/')))
except:
break
lst.append(tmp)
lst.sort(key=lambda x: (x[2],x[0],x[1]))#x为接受的参数(即列表中的值),冒号后面为结果
#1.按升序排的。2.按先排x[2] 再排x[0] 再排x[1]。
for i in lst:
if i[0]<10:
i[0]="0"+str(i[0])
print(f'{i[0]}/{i[1]}/{i[2]}')
一般为了养成好习惯,用牛客网的套版
while True:
try:
#中间便是所有的代码,函数可以写在外面
except:
break
可是题目没说几个输入,但还要把所有输入都输进来才能做题。则就先用这个套版只管输入。
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
sorted会新建一个排序好的列表并返回,而sort是修改原列表并排好序。
sorted(iterable, cmp=None, key=None, reverse=False)
list.sort(cmp=None, key=None, reverse=False)
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
很抽象,简单来说,就是key=一个函数,函数接受一个变量,对返回的变量进行排序。
cmp —在C++里比较常用,用key好一点。
简单的排序。
lst.sort()
复杂点的结构体排序
def getkey(x):
return x[0]#用第一个排
lst.sort(key=getkey)
lst.sort(key=lambda x: (x[2],x[0],x[1]))
也可以写成
def getkey(x):
return (x[2],x[0],x[1])
lst.sort(key=getkey)
故这就是一个匿名函数,简洁函数的表示。
def f(x):
return x+1
f=lambda x: x+1
就这俩玩意是一样的。
目前我的知识面,仅限于应用于 过滤、映射、结构体。
首先
map
我们知道用map输入很方便
n,m=map(int,input().split())
那么怎么应用lambda呢?
tmp=[0,1,2,3,4]
lst=list(map(lambda x: x+1,tmp))
print(lst)
#[1, 2, 3, 4, 5]
典型的函数式编程,就不用一个一个循环改了。
其次
filter
tmp=[0,1,2,3,4]
lst=list(filter(lambda x: x%2==0,tmp))
print(lst)
#[0, 2, 4]
lst=list(filter(lambda x: x%2==0,range(0,5)))
print(lst)
#[0, 2, 4]
可以这么写,i已经是个列表了,比比值就行了
for i in lst:
if i[0]<10:
i[0]="0"+str(i[0])
print(f'{i[0]}/{i[1]}/{i[2]}')
也可以这么写,将i里元素全转换成字符串
for i in lst:
i=[str(j) for j in i]
if len(i[0])==1:
i[0]='0'+i[0]
print('/'.join(i))#连接字符串数组
这里的第二行还可以这么写,把i里的元素变成字符串,由于map是映射,故最外面套上list()
i=list(map(str,i))
完结。