【python】一行语句可以做到什么!

也是作为一个收集贴,保存我遇到的或是日常写的有趣的/一行语句/。

1 TIPS

1、一个由整数(0-9)组成的非空数组所表示的非负整数,如何将数组变成整数输出?
如[1,2,3,4,5,6,7,8,9,0]表示数字1234567890.
用循环来累加?

''.join(map(str, digits))就可以了!

2、列表生成器
对列表i=[“5”,“3”,".",".",“7”,".",".",".","."],如何剔除非有效数字?
i=[x for x in i if x!='.']即可。

4、合并两个列表并去重

print(sorted(list(set(alist+blist))))

5、利用推导式嵌套,一行生成99乘法表。

print(['%dX%d=%-2d'%(i,j,i*j) for i in range(1,10) for j in range(1,10)])

2 LeetCode

力扣066:加一。

list(map(int, list(str(int(''.join(map(str, digits))) + 1))))

力扣151:翻转字符串中的单词

return ' '.join(reversed(s.split()))

力扣169:多数元素

        return sorted(nums)[len(nums)//2]

力扣476:数字的补数& 力扣1009:十进制整数的反码

        return int(''.join(['0'if i=='1'else '1' for i in bin(num)[2:]]),2)
return int(bin(num)[2:].replace('0', '2').replace('1', '0').replace('2', '1'), 2)

力扣551:学生出勤记录 I

        if s.count('A')>1 or s.find('LLL')!=-1:return False
        return True
>>>
        return s.count('A')<=1 and  'LLL'not in s
>>>
        return s.count('A')<=1 and s.find('LLL')==-1
        没有探究,但是s.find()应该比innot in的判断要快

力扣557:反转字符串中的单词

        return ' '.join(i[::-1] for i in s.split())

力扣561:数组拆分I

        return sum(sorted(nums)[::2])

力扣657:机器人能否返回原点

        return moves.count('U')==moves.count('D') and moves.count('L')==moves.count('R')

力扣693:交替位二进制数

        return '11'not in bin(n) and '00' not in bin(n)
        执行用时 :28 ms, 在所有 Python3 提交中击败了88.40%的用户
        return bin(n).find('11')==-1 and bin(n).find('00')==-1

力扣709:将字母字符串变为小写

		return str.lower()
        return ''.join([chr(ord(i)|32) for i in str])

力扣796:旋转字符串

        return len(A)==len(B) and B in A+A

力扣832:翻转图像

        return [[j ^ 1 for j in i[::-1]] for i in A]

力扣836:矩形重叠

        return not(rec1[2]<=rec2[0] or rec1[3]<=rec2[1] or rec2[2]<=rec1[0]or rec2[3]<=rec1[1])

力扣867:转置矩阵

        return [[A[i][j]for i in range(len(A))]for j in range(len(A[0]))]
		return zip(*A)

力扣908:最小差值 I

        # return sorted(A)[-1]-sorted(A)[0]-2*K if sorted(A)[-1]-sorted(A)[0]-2*K>0 else 0
        return max(0, max(A) - min(A) - 2*K)

力扣944:删列造序

        return sum(1 for i in zip(*A) if sorted(list(i))!=list(i))

力扣1051 高度检测器

        return sum(1 for i, j in zip(heights, sorted(heights)) if i != j)

力扣1295 统计位数为偶数的数字

        return len(i for i in nums if len(str(i))%2==0)

力扣1313 解压缩编码列表

        return [j  for i in range(0,len(nums),2) for j in [nums[i+1]]*nums[i]]

力扣1323:6和9组成的最大数字

        return num if str(num).find('6')==-1 else int(str(num).replace('6','9',1))

力扣1351 统计有序矩阵中的负数

        return len([j for i in grid for j in i if j<0])
发布了317 篇原创文章 · 获赞 44 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Heart_for_Ling/article/details/103299323