用Python刷了快一百道题了,语法基本熟悉了,之前很多笔记都写在了那道题的题解里,找起来很麻烦,有时候找不到了很话多用法还是要现去查,我在这里总结一下:
list:
a=[[0]*10]*10看起来能定义出一个10*10的二维数组,但是我们发现修改其中的一维的数据,其他维的也会被跟着修改,所以这并不是真正意义上的二维数组
直接返回最后一个值list[-1]
删除某位置,del list[7]
dict:
用in比较快,if i (not) in Map:
这个慢 dict.has_key(a)
for:
倒着for循环,区间是[Len,-1),每次减1
for i in range(Len,-1,-1):
class:
- # Definition for singly-linked list.
- # class ListNode(object):
- # def __init__(self, x):
- # self.val = x
- # self.next = None
定义成员函数的时候第一个要写self,调用的时候作为self的那个参数不需要写
return:
不能写return dp[i]=1,要分开写
math:
math.sqrt(x)
各种转换:
二进制str转十进制,十进制数转二进制str,前面自带0b,要去掉。 bin(int(a,2)+int(b,2))[2:]
List、String互转:L=list(curS) 。curSort="".join(L)
int2String:str(100)
char2ascll,ascll2char:ord(c),chr(num)
自定义sort:
跟C++的反着来的,升序的是>,并且三个都要写。
def comp(self, a, b):
if a.start>b.start:return 1
elif a.start==b.start:return 0
else : return -1
然后intervals.sort(self.comp)