2016-04-28 18 views
2

リスト内のリストを印刷するトラブルはなく、この方法:私は、リスト内のリストを印刷したい

私はリストを検索することができるようにしたい
print(myList[1]) 

、に基づいて正しいリストを見つけます適切なリストを印刷します。これは、これまでの私のコードです:私はpromptとして「E1234」を入力した場合

myList = [['E1234','12/09/14','440','A','0'],['E3431','10/01/12','320','N','120'],['E0987','04/12/16','342','A','137']] 
prompt = input("Enter a player name: ") 

if prompt in myList: 
    print(myList["""What do I put in here???"""]) 

だから、私はこのコードは、myListに目を通すリストをピックアップし、それを表示したいです。助けてください、私は立ち往生しています。

更新

私は前にそれを言及していないが、境界はリストではなく、辞書を使用していることを申し訳ありません。

+0

外部構造が辞書ではなくリストである理由はありますか? – Michael

+1

境界は、辞書ではなくリストを使用することです。しかし、そのことに感謝 – User0123456789

+0

複数のリストに 'prompt'を表示することは可能ですか? –

答えて

2

Edit @kingledionが答えました。正しい実装はおそらく辞書を使うことでしょう。あなたがリストのデータ構造のこのリストを主張した場合、あなたは唯一の関連リストをフィルタリングするために、リストの内包表記を使用することができます。

details = [x for x in myList if x[0] == prompt] 
if details: 
    print details 
+0

これは、 'prompt'が複数回出現するのを処理するというニースです。しかし、出力はOPが要求したものとは異なります( 'details [0]'でなければなりません)。 –

+0

ありがとう、それは働いた! – User0123456789

4

あなたが考えている実装はdict()です。

https://docs.python.org/3.5/library/stdtypes.html#mapping-types-dict

dictのは、この場合プレイヤー名に、キーによってデータにアクセスする能力を提供します。

mydict = {'E1234': ['12/09/14','440','A','0'],'E3431': ['10/01/12','320','N','120'],'E0987': ['04/12/16','342','A','137']} 
prompt = input("Enter a player name: ") 

print(mydict.get(prompt, "Player not found")) 

EDIT:

はまた、あなたが使用して辞書にリストを回すことができます。

mydict = {key: value for (key, value) in [(x[0], [x[1], x[2], x[3], x[4]]) for x in myList]} 

EDIT2:

[OK]を罰金、あなたはすべての辞書を使用することを許可されていない場合次に、1つをシミュレートします。

fake_dict_keys = [x[0] for x in myList] 
print(myList[fake_dict_keys.index(prompt)]) 
+0

OPが検索されるデータの表現を制御できるならいいですね。これが事実であるということは明らかではない。 –

+0

境界は私がリストを使用しなければならないことです。 – User0123456789

-1

あなたは辞書にあなたのリストを変換してから作業を行うことができます。以下の例:

myList = [['E1234','12/09/14','440','A','0'],['E3431','10/01/12','320','N','120'],['E0987','04/12/16','342','A','137']] 

myDict = { i[0]: i for i in myList } 

prompt = input("Enter a player name: ") 

if prompt in myDict: 
    print(myDict[prompt]) 
+0

これは、1つ以上の要素が同じ最初の値を共有しないことを前提としています。 –

+0

はい、ただし、OPで説明されている問題の限りです。 「myList内のプロンプト」という指示は、1つだけ存在することを意味し、その名前はIDのようなものである。 –

+0

"myListのプロンプト"は、少なくとも1回は現れません。それがIDであると考えていることは、あなたが行った仮定です。 –

関連する問題