teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

補足

2018/07/15 15:10

投稿

tachikoma
tachikoma

スコア3601

answer CHANGED
@@ -20,4 +20,29 @@
20
20
  print(num2str[4])
21
21
  ```
22
22
 
23
- strはPythonの予約語のひとつなので、変数名には使わないことをオススメします。
23
+ strはPythonの予約語のひとつなので、変数名には使わないことをオススメします。
24
+
25
+ ----
26
+ 補足
27
+
28
+ dictはキーの重複は許されませんが、valueの重複は問題がありません。
29
+ ```Python
30
+ num2str = {
31
+ 440: 'A',
32
+ 880: 'A',
33
+ 1760: 'A'
34
+ }
35
+ ```
36
+ ただし、これで変換してしまうと元の音程が不定になるので
37
+ ```Python
38
+ # 数値->文字列
39
+ num2str = {
40
+ 440: 'A4',
41
+ 880: 'A5',
42
+ 1760: 'A6'
43
+ }
44
+
45
+ # 文字列->数値
46
+ str2num = {v: k for k, v in num2str.items()}
47
+ ```
48
+ としておくと、数値と文字列を行き来できていいかもしれませんね。

1

strは変数名に使わないほうがいい。

2018/07/15 15:10

投稿

tachikoma
tachikoma

スコア3601

answer CHANGED
@@ -18,4 +18,6 @@
18
18
 
19
19
  # 登録されていないキーにアクセスするとエラーが発生します。
20
20
  print(num2str[4])
21
- ```
21
+ ```
22
+
23
+ strはPythonの予約語のひとつなので、変数名には使わないことをオススメします。