我在下面有以下代码。
class NameParser:
def __init__(self):
self.getName
def getName(self, name):
splitName = name.split(' ')
surname = splitName.pop()
for i in range(len(splitName)):
print('Name: %s' % splitName[i])
return('Surname: %s' % surname)
np = NameParser()
print(np.getName("ali opcode goren"))
# output: name: ali, name: opcode, surname: goren
我如何返回两个值?如下面的代码:
for i in range(len(splitName)):
return('Name: %s' % splitName[i])
return('Surname: %s' % surname)
# output: name ali: (error) i want all values name, name, surname
我想要所有的值,但只需要一个输出。我该如何解决这个问题?
答案 0 :(得分:4)
pop()
方法从列表中获取最后一项,并将其分配给surname
变量。IndexError
异常。for loop
对列表中的每个项目进行迭代,并将值分配给user_name
变量。surname
。<强>演示强>:
class NameParser:
def __init__(self):
pass
def getName(self, name):
#- Spit name and again check for empty strings.
splitName = [i.strip() for i in name.split(' ') if i.strip()]
#- Get Surname.
try:
surname = splitName.pop()
except IndexError:
print "Exception Name for processing in empty."
return ""
user_name = ""
for i in splitName:
user_name = "%s Name: %s,"%(user_name, i)
user_name = user_name.strip()
user_name = "%s Surname: %s"%(user_name, surname)
return user_name
np = NameParser()
user_name = np.getName("ali opcode goren abc")
print "user_name:", user_name
<强>输出强>:
user_name: Name: ali, Name: opcode, Name: goren, Surname: abc
答案 1 :(得分:1)
试试这个:
class NameParser:
def __init__(self):
self.getName
def getName(self, name):
listy = [] # where the needed output is put in
splitName = name.split(' ')
for i in range(len(splitName)):
if i==(len(splitName)-1):#when the last word is reach
listy.append('Surname: '+ splitName[i])
else:
listy.append('Name: '+ splitName[i])
return listy
nr = NameParser()
print(nr.getName("ali opcode goren"))
# output: name: ali, name: opcode, surname: goren
whithout loop:
class NameParser:
def __init__(self):
self.getName
def getName(self, name):
listy = [] # where the needed output is put in
splitName = name.split(" ")
listy ="Name",splitName[0],"Name",splitName[1],"Surname",splitName[2]
return listy
nr = NameParser()
print(nr.getName("ali opcode goren"))
# output: name: ali, name: opcode, surname: goren
答案 2 :(得分:1)
尝试使用yield
class NameParser:
def __init__(self):
self.getName
def getName(self, name):
splitName = name.split(' ')
surname = splitName.pop()
for i in range(len(splitName)):
yield ('Name: %s' % splitName[i])
yield ('Surname: %s' % surname)
np = NameParser()
for i in (np.getName("ali opcode goren")):
print i
答案 3 :(得分:1)
你可以这样做:
def getName(self, name):
return name.split(' ')
它会返回一个元组
def get_name(name):
return name.split(' ')
>>> get_name("First Middle Last")
['First', 'Middle', 'Last']
答案 4 :(得分:0)
或者您可以尝试
IDs