我遇到了另一个问题,即虽然找到了元组中的字符串;只返回第一个元组信息。
def info(name, food_list):
food_list = = [('Donut', '320', '4.00'), ('Apple Pie', '200', '3.20')]
innertup = food_list[0]
for c in food_list:
if name in c:
print name,':',innertup[1:3]
return None
else:
print "Unknown food", name
return None
当它运行时,它只打印出Donut: ('320', '4.00')
,即使Apple Pie是有问题的名称,该函数返回Apple Pie: ('200', '3.20')
。我也想摆脱元组周围的括号,我不确定如何,将str()
放在它周围并不能解决问题。
答案 0 :(得分:1)
这应该有效:
def info(name, food_list):
food_list = = [('Donut', '320', '4.00'), ('Apple Pie', '200', '3.20')]
for c in food_list:
if name in c:
print c[0],':',c[1], ' ', c[2]
return None
else:
print "Unknown food", name
return None
c [0]将是食物的名称,c [1]是第一个数字(可能是数量),c [2]是第二个数字(可能是价格)。
小心! else语句用于for循环,而不是if!
答案 1 :(得分:0)
查看名称是否在其中一个元组中:
for x in food_list:
if 'Apple Pie' in x:
print (x)
中打印元组
print "{0[0]}: {0[1]} : {0[2]}".format(x)
您可以更改{}
对周围的格式以匹配您想要的格式。
总的来说:
def info(name, food_list):
for x in food_list:
if name in x:
print "{0[0]}: {0[1]} : {0[2]}".format(x)