【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))))

力扣137:只出現一次的數字II

        return (sum(set(nums))*3-sum(nums))//2

力扣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)

力扣386:字典序排數

        return sorted(list(range(1,n+1)),key=lambda x:str(x))

力扣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))

力扣989:數組形式的整數加法

        return list(map(int,str(int(''.join(map(str,A)))+K)))

力扣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])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章