計算機科学のブログ

ほしい物リスト

Python - Getting Organized: Data Structure Choices - dictionary, key, if, not in

Head First Python: A Learner’s Guide to the Fundamentals of Python Programming, A Brain-Friendly GuidePaul Barry(著)、 O’Reilly Mediaの Chapter 6.(Getting Organized: Data Structure Choices)、EXERCISE(50/78)の解答を求めてみる。

Jupyter(コード、入出力結果)

OrganizingData.ipynb

swimmers = {}
for file in swim_files:
    name, *_ = swimclub.read_swim_data(file)
    if name not in swimmers:
        swimmers[name] = []
    swimmers[name].append(file)
swimmers
{'Hannah': ['Hannah-13-100m-Free.txt', 'Hannah-13-100m-Back.txt'],
 'Darius': ['Darius-13-100m-Back.txt',
  'Darius-13-100m-Breast.txt',
  'Darius-13-100m-Fly.txt',
  'Darius-13-200m-IM.txt'],
 'Owen': ['Owen-15-100m-Free.txt'],
 'Mike': ['Mike-15-100m-Free.txt',
  'Mike-15-100m-Back.txt',
  'Mike-15-100m-Fly.txt',
  'Mike-15-200m-IM.txt',
  'Mike-15-200m-Free.txt'],
 'Abi': ['Abi-10-50m-Back.txt',
  'Abi-10-50m-Free.txt',
  'Abi-10-100m-Back.txt',
  'Abi-10-50m-Breast.txt',
  'Abi-10-100m-Breast.txt'],
 'Ruth': ['Ruth-13-200m-Free.txt',
  'Ruth-13-200m-Back.txt',
  'Ruth-13-100m-Back.txt',
  'Ruth-13-100m-Free.txt',
  'Ruth-13-400m-Free.txt'],
 'Tasmin': ['Tasmin-15-100m-Back.txt',
  'Tasmin-15-100m-Free.txt',
  'Tasmin-15-100m-Breast.txt',
  'Tasmin-15-200m-Breast.txt'],
 'Erika': ['Erika-15-100m-Free.txt',
  'Erika-15-200m-Breast.txt',
  'Erika-15-100m-Breast.txt'],
 'Maria': ['Maria-9-50m-Free.txt'],
 'Elba': ['Elba-14-100m-Free.txt'],
 'Ali': ['Ali-12-100m-Back.txt', 'Ali-12-100m-Free.txt'],
 'Chris': ['Chris-17-100m-Back.txt', 'Chris-17-100m-Breast.txt'],
 'Aurora': ['Aurora-13-50m-Free.txt'],
 'Katie': ['Katie-9-100m-Breast.txt',
  'Katie-9-50m-Fly.txt',
  'Katie-9-50m-Breast.txt',
  'Katie-9-50m-Back.txt',
  'Katie-9-50m-Free.txt',
  'Katie-9-100m-Free.txt',
  'Katie-9-100m-Back.txt'],
 'Alison': ['Alison-14-100m-Breast.txt', 'Alison-14-100m-Free.txt'],
 'Emma': ['Emma-13-100m-Free.txt', 'Emma-13-100m-Breast.txt'],
 'Calvin': ['Calvin-9-50m-Fly.txt',
  'Calvin-9-50m-Back.txt',
  'Calvin-9-50m-Free.txt'],
 'Blake': ['Blake-15-100m-Free.txt',
  'Blake-15-100m-Back.txt',
  'Blake-15-100m-Fly.txt'],
 'Bill': ['Bill-18-200m-Back.txt', 'Bill-18-100m-Back.txt'],
 'Dave': ['Dave-17-100m-Free.txt', 'Dave-17-200m-Back.txt'],
 'Lizzie': ['Lizzie-14-100m-Free.txt', 'Lizzie-14-100m-Back.txt'],
 'Carl': ['Carl-15-100m-Back.txt']}