今天遇到一个题,题中要把list输出,不能换行,还不能带括号,于是乎,就百度了一下不带括号输出list,得到两个方法,如l是一个list,如果是字符串类型的,可以用 x.join(l) x表示用x将l中的元素串起来输出,可以是空格,-等等,如果是数字,这种方法就不行了
这时就要用循环一个个输出了: for i in range(len(l)):
                                                         print(l[i],end=" ")

今天写个题,要用二维数组,表示很难受

创建二维数组,可以这么写

python list里选出不为空的值 python输出list不带括号_二维数组

里面的1还可以换成任何数,当然,还可以这么写 a=[[] for i in range(4)],结果如下:

python list里选出不为空的值 python输出list不带括号_python list里选出不为空的值_02


         还有,直接输入一个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
这两个是不一样的