今天遇到一个题,题中要把list输出,不能换行,还不能带括号,于是乎,就百度了一下不带括号输出list,得到两个方法,如l是一个list,如果是字符串类型的,可以用 x.join(l) x表示用x将l中的元素串起来输出,可以是空格,-等等,如果是数字,这种方法就不行了
这时就要用循环一个个输出了: for i in range(len(l)):
print(l[i],end=" ")
今天写个题,要用二维数组,表示很难受
创建二维数组,可以这么写
里面的1还可以换成任何数,当然,还可以这么写 a=[[] for i in range(4)],结果如下:
还有,直接输入一个List要这么写 a=list(map(int,input().split())
还有,复制list可以这么写a=b[:]
按从大到小排序这么写 a.sort(reverse=True)
还有,写输出的时候遇到一个问题 如果只是单纯的使用print的话,会在最后自动输出一个换行,而如果用end=" “的话,就没有换行了,如果用print(’\n’)的话,会换两行,所以换一行的话要写print(’\n’,end=”")真难受。
还有,今天百度list去重的时候,找到一个东西,reduce与lambda,使用reduce要先导入,from functools import reduce
lambda,就是一个函数,但不想写def 了,然后用lambda,比如说g=lambeda x,y:x+y,就是说一个函数名字叫g ,两个参数,作用是求和
reduce是按某种规则把参数迭代"相加”,reduce有两或三个参数,reduce(function,iterable[,initializer])其function,iterable,initializer分别代表三个参数
function指的是“规则",通常是一个函数,
iterable是可迭代对象,比如说list,tuple,dict,set等
initializer可以有,也可以没有,有的话,会以initializer和iterable作为初始迭代对象,如果没有,会以iterable中前两个元素作为初始迭代对象
注意:三个参数形式如下:reduce(g,[1,2,3,4,5],8)
g----function [1,2,3,4,5]----iterable 8----initialiizer
去重:a=[1,2,2,2,4,12]
funct=lambda x,y:x if y in x else x+[y]
reduce (funct,[[],]+a)
很巧妙的一个写法,迭代对象为[[],1,2,2,2,4,12],然后调用那个lambda函数
对于funct=lambda x,y:x if y in x else x+[y] 这行,在lambda中用if 要省去:,而且要把if判断之后执行的东西放在前面,比如说B if A else C,是表示如果A成立,执行B,否则执行C
也可以写成funct=lambda x,y:x+[y] if y not in x else x
不可以写成funct=lambda x,y:x+[y] if y not in x
这两个是不一样的