3 回答

TA貢獻1820條經(jīng)驗 獲得超2個贊
一般的答案是在跳之前先看看:
if result:
[(first_name, last_name)] = result
或請求原諒:
try:
[(first_name, last_name)] = result
except ValueError:
pass
但是您實際上通過使用re.findall()來查找單個結(jié)果使事情變得過于復雜。使用re.seach()并提取您的匹配組:
match = re.search("(.*) (.*)", value)
if match:
firstname, lastname = match.groups()
或者
try:
firstname, lastname = re.search("(.*) (.*)", value).groups()
except AttributeError:
# An attribute error is raised when `re.search()` returned None
pass

TA貢獻1825條經(jīng)驗 獲得超4個贊
一般的答案是在跳之前先看看:
if result:
[(first_name, last_name)] = result
或請求原諒:
try:
[(first_name, last_name)] = result
except ValueError:
pass
但是您實際上通過使用re.findall()來查找單個結(jié)果使事情變得過于復雜。使用re.seach()并提取您的匹配組:
match = re.search("(.*) (.*)", value)
if match:
firstname, lastname = match.groups()
或者
try:
firstname, lastname = re.search("(.*) (.*)", value).groups()
except AttributeError:
# An attribute error is raised when `re.search()` returned None
pass

TA貢獻1821條經(jīng)驗 獲得超5個贊
由于re.findall
回報不匹配的情況下,空列表,你可以使用or
運營商默認值分配給first_name
和last_name
替代:
[(first_name, last_name)] = re.findall("(.*) (.*)", "johnsmith") or [(None, None)]
添加回答
舉報