如何从 python def 中省略 return 中的括号
how to omit parenthesis in return from a python def
你好,我正在尝试构建一个函数来计算单词,return 必须是 "salad:0 hamburger:2 water:1" 请注意,每个项目的格式为项目名称、冒号符号、计数项目和所有项目组由 space 分隔,我得到的是以下 ('salad:', 1, 'hamburger:', 2, 'water:', 2) 我怎么能从 return
中取出所有 () 和 ''
我的代码如下:
def item_order (order = ""):
order = order
s = order.count('salad')
h = order.count('hamburger')
w = order.count('water')
return 'salad:',s, 'hamburger:',h, 'water:',w
print item_order('water hamburger water hamburger salad')
如之前的评论所述,您正在 returning 一个 tuple
,它在打印时会产生您正在获得的输出
('salad:', 1, 'hamburger:', 2, 'water:', 2)
如果您想 return 具有上述格式的单个字符串,您可以这样做
return ' '.join(('salad:', str(s), 'hamburger:', str(h), 'water:', str(w)))
例如,产生
'salad: 1 hamburger: 2 water: 2'
你正在return创建一个元组,因此如果你打印它有括号是正常的。
问题是,为什么你需要没有括号的结果?鉴于 python 中没有这样的数据类型。如果你需要它来显示,你可以像这样打印它
for elem in result:
print elem,
# salad: 1 hamburger: 2 water: 2
如果您需要将整个结果变成一个字符串,那是另一回事,所以您看,您需要决定在这种情况下需要什么。
所以如果问题是第二个,你可以使用这个:
result = ('salad:', 1, 'hamburger:', 2, 'water:', 2)
print str(result)[1:-1]
# 'salad:', 1, 'hamburger:', 2, 'water:', 2
如果您需要一个字符串并且还需要删除引号,您可以return这样的函数
return 'salad:' + str(s) + ' hamburger:' + str(h) + ' water:' + str(w)
您的函数正在返回 一个元组 ,因此当传递给 print
时,该元组将被打印出来。元组打印在括号内。
您可以导入 Python 3 打印函数并将元组作为参数传递给该函数。为此,您需要在文件的最顶部添加以下导入:
from __future__ import print_function
然后你可以这样做:
print(*item_order('water hamburger water hamburger salad'))
请注意,导入打印功能将要求您始终使用 print(something)
而不是 print something
。
好吧,如果你只有这些你正在计算的单词,那么输出它们和计数的最简单方法可能是 return 一个由你正在计算的单词和它们的计数连接而成的字符串像这样:
def item_order (order=""):
order = order
s = order.count('salad')
h = order.count('hamburger')
w = order.count('water')
return 'salad: ' + str(s) + ' hamburger: ' + str(h) + ' water: ' + str(w)
print item_order('water hamburger water hamburger salad')
您正在生成 ('salad:', 1, 'hamburger:', 2, 'water:', 2)
.
形式的元组
您可以使用 .format 轻松地将其转换为字符串:
>>> t=('salad:', 1, 'hamburger:', 2, 'water:', 2)
>>> "{} {}, {} {}, {} {}".format(*t)
'salad: 1, hamburger: 2, water: 2'
你好,我正在尝试构建一个函数来计算单词,return 必须是 "salad:0 hamburger:2 water:1" 请注意,每个项目的格式为项目名称、冒号符号、计数项目和所有项目组由 space 分隔,我得到的是以下 ('salad:', 1, 'hamburger:', 2, 'water:', 2) 我怎么能从 return
中取出所有 () 和 ''我的代码如下:
def item_order (order = ""):
order = order
s = order.count('salad')
h = order.count('hamburger')
w = order.count('water')
return 'salad:',s, 'hamburger:',h, 'water:',w
print item_order('water hamburger water hamburger salad')
如之前的评论所述,您正在 returning 一个 tuple
,它在打印时会产生您正在获得的输出
('salad:', 1, 'hamburger:', 2, 'water:', 2)
如果您想 return 具有上述格式的单个字符串,您可以这样做
return ' '.join(('salad:', str(s), 'hamburger:', str(h), 'water:', str(w)))
例如,产生
'salad: 1 hamburger: 2 water: 2'
你正在return创建一个元组,因此如果你打印它有括号是正常的。
问题是,为什么你需要没有括号的结果?鉴于 python 中没有这样的数据类型。如果你需要它来显示,你可以像这样打印它
for elem in result:
print elem,
# salad: 1 hamburger: 2 water: 2
如果您需要将整个结果变成一个字符串,那是另一回事,所以您看,您需要决定在这种情况下需要什么。
所以如果问题是第二个,你可以使用这个:
result = ('salad:', 1, 'hamburger:', 2, 'water:', 2)
print str(result)[1:-1]
# 'salad:', 1, 'hamburger:', 2, 'water:', 2
如果您需要一个字符串并且还需要删除引号,您可以return这样的函数
return 'salad:' + str(s) + ' hamburger:' + str(h) + ' water:' + str(w)
您的函数正在返回 一个元组 ,因此当传递给 print
时,该元组将被打印出来。元组打印在括号内。
您可以导入 Python 3 打印函数并将元组作为参数传递给该函数。为此,您需要在文件的最顶部添加以下导入:
from __future__ import print_function
然后你可以这样做:
print(*item_order('water hamburger water hamburger salad'))
请注意,导入打印功能将要求您始终使用 print(something)
而不是 print something
。
好吧,如果你只有这些你正在计算的单词,那么输出它们和计数的最简单方法可能是 return 一个由你正在计算的单词和它们的计数连接而成的字符串像这样:
def item_order (order=""):
order = order
s = order.count('salad')
h = order.count('hamburger')
w = order.count('water')
return 'salad: ' + str(s) + ' hamburger: ' + str(h) + ' water: ' + str(w)
print item_order('water hamburger water hamburger salad')
您正在生成 ('salad:', 1, 'hamburger:', 2, 'water:', 2)
.
您可以使用 .format 轻松地将其转换为字符串:
>>> t=('salad:', 1, 'hamburger:', 2, 'water:', 2)
>>> "{} {}, {} {}, {} {}".format(*t)
'salad: 1, hamburger: 2, water: 2'