テストコードのサンプルコードのtest_converter.pyに
import unittest from converter import list_to_dict class TestListToDict(unittest.TestCase): def test_duplicate_key(self): actual = list_to_dict( [{'id': 1, 'name': 'ロッシ'}, {'id': 2, 'name': 'マルケス'}, {'id': 2, 'name': 'ロレンソ'}], ) self.assertEqual(actual, { 1: {'id': 1, 'name': 'ロッシ'}, 2: {'id': 2, 'name': 'ロレンソ'}, })
とあるメソッドを実行してもエラーが起こらない理由がわからないです。
converter.pyには
def list_to_dict(data, key='id'): ret = {} for row in data: ret[row[key]] = row print(ret) return ret
とコードがあってprint(ret)の値は
{1: {'id': 1, 'name': 'ロッシ'}, 2: {'id': 2, 'name': 'マルケス'}, 3: {'id': 3, 'name': 'ロレンソ'}} .{1: {'id': 1, 'name': 'ロッシ'}, 2: {'id': 2, 'name': 'ロレンソ'}} .{'Val': {'code': 'Val', 'name': 'ロッシ'}, 'Mar': {'code': 'Mar', 'name': 'マルケス'}, 'Lor': {'code': 'Lor', 'name': 'ロレンソ'}} .
のようになっています。だから、
[{'id': 1, 'name': 'ロッシ'}, {'id': 2, 'name': 'マルケス'}, {'id': 2, 'name': 'ロレンソ'}]
の{'id': 2, 'name': 'ロレンソ'}]のようにそもそも存在しないものを書いているのになぜエラーにならないのかわかりません。なぜ存在しないものを書いているのにエラーになら何のでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。