python杂谈

今天遇到一个题,题中要把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
这两个是不一样的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值