という名前のキーと、 というタプルの対応する値を持つ辞書を返すコードがあります。名前の後の最初の数字は、対応するタプル内の の数を制御します(タプルに含まれる数字は、左から右へ となります)。たとえば、テキストの行"Ali 6 7 6 5 12 31 61 9"
は、名前の後の最初の数字として6を持ち、このテキスト行 は、キーワード「Ali」を持つ辞書項目になり、 対応する値は、次の6つの整数「Ali ": (7,6,5,12,31,61)。テキストファイルを使用してPythonでタプル辞書
これは私が期待される出力はので、私は
このようなdef get_names_num_tuple_dict(filename):
file_in = open(filename, 'r')
contents = file_in.read()
file_in.close()
emty_dict = {}
for line in contents:
data = line.strip().split()
key = data[0]
length = int(data[1])
data = tuple(data[2:length + 2])
emty_dict[key] = data
return emty_dict
しかし、私が」やった
Ali : (7, 6, 5, 12, 31, 61)
Bella : (2, 6, 2, 2, 30)
Elmo : (3, 8, 6, 8)
Gill : (9, 7)
Jin : (26, 51, 3)
ある
Bella 5 2 6 2 2 30 4 8 9 2
Gill 2 9 7 54 67
Jin 3 26 51 3 344 23
Elmo 4 3 8 6 8
Ali 6 7 6 5 12 31 61 9
からコードを取っているフィルムでありますこのエラーが発生したm length = int(data [1]) IndexError:リストインデックスが範囲外です
誰でもお手伝いできますか?それは本当に役に立ちます。私は初めての学習として辞書に少し弱いです。
def get_names_num_tuple_dict(filename):
emty_dict = {}
with open(filename) as f:
for line in f:
data = line.strip().split()
key = data[0]
length = int(data[1])
data = tuple(data[2:length + 2])
emty_dict[key] = data
return emty_dict
print(get_names_num_tuple_dict('my_filename'))
出力::次のコード
あなたも、デバッガを使用しようとしたことがありますか? –
その機能について知りませんでした....それはどこにありますか? – dipte