- 在Python中,
False,0,'',[],{},()
都可以视为假 is
用于判断两个变量引用对象是否为同一个,==
用于判断引用变量的值是否相等。类似于Java中的equal()和==。反之,is not
用于判断两个变量是否引用自不同的对象,而!=
用于判断引用变量的值是否不等。- Python 递归函数返回值为None的解决办法
要在调用处加return
;List
切片得到的数据引用还是原来list中的引用;传递参数时候,也不改变引用地址。包括返回的数据的时候依然是一个来自原始list引用。
class Solution:
def minNumberInRotateArray(self, rotateArray):
for item in rotateArray:
print(id(item))
i=0
j=len(rotateArray)-1
if j<0:
return 0
elif len(rotateArray)==1:
return rotateArray[0]
elif len(rotateArray)==2:
value= rotateArray[0] if rotateArray[0]<rotateArray[1] else rotateArray[1]
print(id(value))
print(id(rotateArray[0]))
print(id(rotateArray[1]))
return value
else:
k=(i+j)/2
if rotateArray[k]>=rotateArray[i]:
temp=rotateArray[k:]
else:
temp=rotateArray[i:k+1]
return self.minNumberInRotateArray(temp)
if __name__=='__main__':
s=Solution()
array=[3,4,5,1,2]
for item in array:
print(id(item))
a=s.minNumberInRotateArray(array)
print(a)
pass
-
python对象都是引用,a=1代表在内存中创建1,然后把1的地址的指向赋予a;如果b=1,则内存中已经有1,不在分配新的地址,所以a的地址等于b的地址;c=2,这个时候c是一个新的地址,因为2是新的数据。
-
排列
import itertools
print(["".join(i) for i in itertools.permutations("abcd")])