使用函数来调用元组

时间:2013-04-09 13:02:42

标签: python

我遇到了另一个问题,即虽然找到了元组中的字符串;只返回第一个元组信息。

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()放在它周围并不能解决问题。

2 个答案:

答案 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)

better format

中打印元组
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)