The way of leetcode blood abuse (split / join / get;)

1.split 、 join妙用

#split分析:
#用于字符串函数,用法是str.split('分割符'),返回一个list对象。
eg1:
str_ = 'abcdabcdabcda'
list_ = str_.split('a')
print(list_)
#输出为:['','bcd','bcd','bcd','']
#这是由于a左边没东西,则会返回空。
eg2:
#可分割路径,思路来源于leetcode大佬
#若path为linux指令下的路径
path = 'e/wuenda//a/..///DL/./course4week4//./'
list_ = path.split('/')
print(list_)
assert(list_ == ['e','wuenda','','a','..','','','DL','.','course4week4','','.',''])
#输出为['e','wuenda','','a','..','','','DL','.','course4week4','','.','']

#接下来谈join,join函数用于连接列表不同元素,之后返回一个字符串。
#join是作用于列表,然后生成字符串;而split是作用于字符串,然后生成列表。二者刚好相反
#你想呀,合并的话,字符串那么完整,咋合并呀,只能合并列表的不同字符串;而分割的时候列表本来就四分五裂的,你再分的话没啥统一规则呀,所以只能合并。
#上面利用split函数将一个路径分割成各个单一路径,每个单一路径存在一个列表中。
#这时候可以巧妙利用join函数
eg3:
path_eg = ['e','wuenda','course4','week4']
path_r = '/'.join(path_eg)
print(path_r)
#输出为e/wuenda/course4/week4

eg4:
#若其中含有大量的''以及'.','..'等linux指令,则使用字典:
r = []
for s in list_:
	r = {'':r,'.':r,'..':r[:-1]}.get(s,r + [s]) #这里可以理解为我将两个斜杠之间细分为一个个小指令,若为'':则为空指令,返回上一级命令r;若为'.':linux指令,依旧为返回上一级命令r;若为'..':返回上一级的前一级指令;若为其他字符:'wuenda':作为当下一级的指令,并填入路径类标list_中。
path = '/' + '/'.join(r)

#这里再补一个get用法:python里get是字典的函数,用于从字典中查询键,如果有,则返回键的值,否则返回逗号右边的参数。

Published 31 original articles · Likes0 · Visits 670

Guess you like

Origin blog.csdn.net/ballzy/article/details/105478707