簡體   English   中英

如何從python(3.3)中的列表中獲取元組

[英]How can I get a Tuple from a list in python (3.3)

因此,我得到了一個包含元組列表的模塊。 每個元組有3個項目,公司代碼,公司名稱和公司價格:

('bwt', 'bigwilsontrans', 23.4)

此列表中有很多項。 我被要求做的是編寫一個程序,要求用戶輸入公司代碼(可以是多個),然后從列表中返回包含相應代碼的元組。

如果代碼與列表中的任何代碼都不匹配,則將忽略該代碼。 有人可以幫忙嗎? 我被困在如何返回元組上。 我對python很陌生,所以如果這很基本,請抱歉

您可以像使用數組一樣使用索引訪問元組的各個成員,有關更多信息,請參見相關的python文檔

因此,從干草堆(元組列表)中搶針(公司代碼)是一件非常簡單的事情

# haystack is a list of tuples
def find_needle(needle, haystack):
  for foo in haystack:
    # foo is a tuple, notice we can index into it like an array
    if foo[0] == needle:
      print foo

list_為元組列表,並c_code公司代碼,通過raw_input從輸入中讀取,或通過某些控件從某些GUI中讀取(如果需要幫助,請告訴我。

您可以使用任一列表理解:

matching_results = [t for t in list_ if t[0] == c_code]

或內置的filter功能:

matching_results = filter(lambda t: t[0]==c_code, list_)

請注意版本2:在Python 3中, filter是生成器樣式的,即,它不會創建列表,但可以對其進行迭代。 要在Python 3中獲取列表,您必須在此生成器上調用list(...)

編輯

如果您有公司代碼c_codes的列表, c_codes可以執行

matching_results = [t for t in list_ if t[0] in c_codes]

這應該是最簡單的方法。

聽起來您幾乎絕對想使用dict

companies = { "bwt": (bigwilsontrans, 23.4),
              "abc": (alphabet, 25.9)
            }

然后要查找它,您只需執行以下操作:

code = int(raw_input("Code: "))
print companies[code]

嘗試:

>>>tuple([1, 2, 3])
(1, 2, 3)

暫無
暫無

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

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