簡體   English   中英

如何從 function 導出結果? (更新了更多代碼)

[英]How to export a result from function? (updated with more code)

堆棧溢出,你好。 我沒有找到有關從“函數”導出數據(在我的情況下為列表)的任何信息

我的代碼的結尾是:

def namesearch():
    with open ('recipes.txt') as f:
        dishnames = []
        for line in f:
            line = line.strip()
            # print (line)
            line2=line.split()
            if len(line2) <= 3:
                pass
                try:
                    a=(int(line2[0])/1)
                except IndexError:
                    pass
                except ValueError:
                    dishnames.append(line2)
        for i in dishnames:
            if len(i) > 1:
                j=' '.join(i)
            else:
                j = str(i[0])
            dishnames_string.append(j)

namesearch()

def search_ingridientsnames():
    with open('recipes.txt') as f:
        ingridient_names = []
        for line in f:
            line = line.strip()
            # print (line)
            line2 = line.split()
            try:
                i=0
                if len(line2) > 3 or len(line2)<1:
                    ingridient_names.append(line2[0])
            except IndexError:
                ingridient_names.append('_')
        # print(ingridient_names)
    ingridient_names_final=[i.split(',') for i in ','.join(ingridient_names).split(',_,')]
print(ingridient_names_final)
search_ingridientsnames()

print (dishnames_string)
print (ingridient_names_final)

結果是

>> [['Egg', 'Milk', 'Tomato'], ['Duck', 'Water', 'Honey', 'Soy'], ['Potato', 'Garlic', 'Gouda'], ['Beef', 'Sweet', 'Pita', 'Wine', 'Tomato']]
>> ['Omelette', 'Peking Duck', 'Baked potato', 'Fajitos']
[]

你看到了嗎? function 末尾的第一個print(ingridient_names_final) - 從 function 寫入列表,沒關系。 如您所見,我還有來自 function, print (dishnames_string)的另一個值,它也是 function 的一部分 - 工作的結果是列表。 但是,當我再次打印 function print (search_ingridientsnames)中的值時 - 結果是 []。 而且我什至不能寫 print(list(search_ingridientsnames)) - 結果是一個錯誤。 我怎樣才能從 function 啟動中收到相同的結果?

結果應該是:

>> [['Egg', 'Milk', 'Tomato'], ['Duck', 'Water', 'Honey', 'Soy'], ['Potato', 'Garlic', 'Gouda'], ['Beef', 'Sweet', 'Pita', 'Wine', 'Tomato']]
>> ['Omelette', 'Peking Duck', 'Baked potato', 'Fajitos']
>> [['Egg', 'Milk', 'Tomato'], ['Duck', 'Water', 'Honey', 'Soy'], ['Potato', 'Garlic', 'Gouda'], ['Beef', 'Sweet', 'Pita', 'Wine', 'Tomato']]

UPD

但是,如果我嘗試在每個人的幫助下輸入 print (search_ingridientsnames()),結果是所需的列表和之后的“NONE”。怎么回事?

該代碼正在打印您所要求的內容。 要打印 function 的結果,您需要使用:

print (search_ingridientsnames())

從第一手的角度來看,我可以說 python 正在將打印語句的結果解釋為 object,因此正在打印您在控制台上看到的內容。 您需要將其寫為 print(search_ingredientsname())。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM