字符串打印不显示,看类型的时候可以看出来。
a = "abc"
new_list = list(a)
>>['a', 'b', 'c']
a= "a,b,c"
new_list = a.split(',')
>>['a','b','c']
整数的反转做一半做不下去了,整数转字符串转列表反转列表的方法,比较麻烦,还在字符串转整数的时候,前面有0给卡住了,这个方法在判断列表/字符串正负那里是可行的,接下来直接做就可以。还有一种方法就是先判断正负,复数就先转换成整数,避免数值溢出,转整数的时候再乘上-1就可以,要加判断语句,判断数值避免溢出。
#不只有列表反转还有字符串反转, #虽然没有内置函数,但是可以直接用切片反转
def reverse(x):
l = str(x)
l1 = list(l)
if l1[0] != "-":
l2 = reversed(l1)
#这里不用再考虑if l2[0] != "0":
l3 = ''.join(l2)
l4 = int(l3)
else:
return l4
if __name__ =='__main__':
a = reverse(123)
print(a)
zip的使用
import numpy as np a=[1,2,3,4,5] b=(1,2,3,4,5) c=np.arange(5) d="zhang" zz=zip(a,b,c,d) print(zz)
输出: [(1, 1, 0, 'z'), (2, 2, 1, 'h'), (3, 3, 2, 'a'), (4, 4, 3, 'n'), (5, 5, 4, 'g')]
import numpy as np a=[1,2,3] zz=zip(a) print(zz)
输出:[(1,), (2,), (3,)]
import numpy as np a=[1,2,3] b=[1,2,3,4] c=[1,2,3,4,5] zz=zip(a,b,c) print(zz)
输出:[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
zip() 和 * 操作符一起操作可以用来 unzip 一个列表,看下面的代码
import numpy as np a=[1,2,3] b=[4,5,6] c=[7,8,9] zz=zip(a,b,c) print(zz)
x,y,z=zip(*zz) print(x) print(y) print(z)
输出: [(1, 4, 7), (2, 5, 8), (3, 6, 9)] (1, 2, 3) (4, 5, 6) (7, 8, 9)
最长的字符串 炫技:
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
ans = ''
for i in zip(*strs):
if len(set(i)) ==1:
ans += i[0]
else:
break
return ans
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ''
s = ''
str0 = min(strs)
str1 = max(strs)
for i in range(len(str0)):
if str0[i] != str1[i]:
# #s = str0[:i]
# return s
return str0[:i]
return str0
?
|