也是作为一个收集贴,保存我遇到的或是日常写的有趣的/一行语句/。
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]
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()应该比in 和not 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])