1

そのため、タプルのリストを含むモジュールが提供されました。各タプルには、会社コード、会社名、および会社価格の3つの項目があります。

('bwt', 'bigwilsontrans', 23.4)

このリストにはかなりの数の項目が含まれています。私が依頼されたのは、会社のコード(複数の場合もあります)の入力をユーザーに要求し、対応するコードを含むリストからタプルを返すプログラムを作成することです。

コードがリスト内のいずれにも一致しない場合、そのコードは無視されます。誰か助けてもらえますか?タプルを返す方法に固執しています。私はPythonにまったく慣れていないので、これが基本的なようであれば申し訳ありません

4

4 に答える 4

1

配列であるかのようにインデックスを使用してタプルの個々のメンバーにアクセスできます。詳細については、関連する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
于 2013-03-20T06:49:35.343 に答える
1

タプル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に注意してください。Python3ではfilterジェネレータースタイルです。つまり、リストは作成されませんが、繰り返し処理できます。Python 3でリストを取得するにはlist(...)、このジェネレーターを呼び出す必要があります。

編集

会社コードのリストがあるc_codes場合は、、

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

これが最も簡単な方法です。

于 2013-03-20T06:55:19.407 に答える
0

ほぼ間違いなくを使用したいようですdict

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

次に、それを調べるには、次のようにするだけです。

code = int(raw_input("Code: "))
print companies[code]
于 2013-03-20T06:52:36.597 に答える
-2

試す:

>>>tuple([1, 2, 3])
(1, 2, 3)
于 2013-03-20T07:00:41.270 に答える