簡體   English   中英

是否可以在python的另一個列表中包含一個列表的名稱?

[英]Is it possible to have the name of a list inside of another list in python?

所以基本上我不確定為什么我的if語句不起作用,我認為可能是因為我的列表中有列表名稱,但我不確定。 任何幫助表示贊賞,謝謝!

def calc_fare(colour, distance, zonestart, zoneend):
    farelist = [colour, distance, zonestart, zoneend]
    red = [2.00, 2.50, 4.50, 6.50]
    silver = [1.80, 2,30, 4.10, 5.80]
    blue = [0.90, 1.15, 2.05, 2.90]
    gold = [3.60, 4.60, 8.20, 11.60]
    z1 = ['z2', 'z3', 'z7']
    z2 = ['z1', 'z3', 'z6']
    z3 = ['z1', 'z2', 'z4', 'z6', 'z7']
    z4 = ['z3', 'z5', 'z6', 'z7']
    z5 = ['z4', 'z6']
    z6 = ['z2', 'z3', 'z4', 'z5']
    z7 = ['z1', 'z3', 'z4']
    if zonestart in zoneend:
        return colour[2]
    else:
        return "test if statement failed"

def main():
    print (calc_fare((str(input('Please enter colour'))), (float(input('Please enter distance'))), (str(input('Please enter starting zone'))), (str(input('Please enter ending zone')))))
    #print(calc_fare("silver", 8.5, "z3", "z6"))

main()

首先,您要在calc_fare中聲明一堆您根本沒有使用的局部變量。 讓我們從刪除這些內容開始:

def calc_fare(colour, distance, zonestart, zoneend):
    if zonestart in zoneend:
        return colour[2]
    else:
        return "test if statement failed"

distance參數也不使用:

def calc_fare(colour, zonestart, zoneend):
    if zonestart in zoneend:
        return colour[2]
    else:
        return "test if statement failed"

如果第二參數的值包含在第三參數中,則剩下的只是一個函數,該函數以其第一參數所引用的值返回第三項。

有了這些信息,您應該首先重新考慮您的要求。

至於將清單放在其他清單內; 如果您有這個:

l1 = [1, 2, 3]
l2 = [l1, 4, 5, 6]

最終得到的結果等同於:

l1 = [1, 2, 3]
l2 = [[1, 2, 3], 4, 5, 6]

l2 = [1, 2, 3, 4, 5, 6]

如果要將“ l1 ”“ splat”成l2 ,則需要:

l2 = l1 + [1, 2, 3]

要么

l2 = [-3, -2, -1] + l1 + [4, 5, 6]

還是什么。

關於已經定義的變量

'foo'"foo"創建一個包含文本“ foo”的字符串; foo是指名稱為“ foo”的變量。 如果您不明白這一點,我強烈建議您為絕對的初學者獲得一本有關Python(或與此有關的任何其他語言)的書。

l1 = [1, 2, 3]
l2 = ['l1', 4, 5, 6]

將為您提供確切的信息:一個包含4個項目的列表:字符串“ l1”,后跟整數4、5、6。

您可以使用locals() ,但這不是特別好的做法。 我建議存儲到對象的實際鏈接,而不僅僅是存儲它們的名稱。

編輯:作為一個例子

>>> z1 = ['z2', 'z3', 'z7']
>>> z2 = ['z1', 'z3', 'z6']
>>> locals()[z1[0]]
['z1', 'z3', 'z6']

暫無
暫無

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

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