回答編集履歴
2
追記
answer
CHANGED
@@ -17,6 +17,43 @@
|
|
17
17
|
sales.append(s)
|
18
18
|
```
|
19
19
|
|
20
|
+
コメントを受けて
|
21
|
+
---
|
22
|
+
> やはり一度辞書型にしてsortするしかないのでしょうか
|
23
|
+
|
24
|
+
辞書に限らず何らかの方法でオブジェクトの組を作れば良いです。
|
25
|
+
|
26
|
+
```Python
|
27
|
+
month = [2, 3, 1, 4]
|
28
|
+
sales = [200, 300, 100, 400]
|
29
|
+
|
30
|
+
m_with_s = list(zip(month, sales))
|
31
|
+
print(m_with_s)
|
32
|
+
|
33
|
+
m_with_s = sorted(m_with_s)
|
34
|
+
print(m_with_s)
|
35
|
+
|
36
|
+
month = []
|
37
|
+
sales = []
|
38
|
+
for m, s in m_with_s:
|
39
|
+
month.append(m)
|
40
|
+
sales.append(s)
|
41
|
+
|
42
|
+
print(month)
|
43
|
+
print(sales)
|
44
|
+
```
|
45
|
+
|
46
|
+
**実行結果** [Wandbox](https://wandbox.org/permlink/M59thhLl1YCvU20S)
|
47
|
+
```
|
48
|
+
[(2, 200), (3, 300), (1, 100), (4, 400)]
|
49
|
+
[(1, 100), (2, 200), (3, 300), (4, 400)]
|
50
|
+
[1, 2, 3, 4]
|
51
|
+
[100, 200, 300, 400]
|
52
|
+
```
|
53
|
+
|
54
|
+
尚 m_with_s = list(zip(month, sales)) とリストに変換しているのはトレースの為で、
|
55
|
+
イテレータをそのまま使って m_with_s = zip(month, sales) とするのが効率的です。
|
56
|
+
|
20
57
|
おまけ
|
21
58
|
---
|
22
59
|
次のように書けば実質一行で実現できますが、少々分かりづらいのが難点です。
|
1
追記
answer
CHANGED
@@ -15,4 +15,15 @@
|
|
15
15
|
for m, s in dic:
|
16
16
|
month.append(m)
|
17
17
|
sales.append(s)
|
18
|
+
```
|
19
|
+
|
20
|
+
おまけ
|
21
|
+
---
|
22
|
+
次のように書けば実質一行で実現できますが、少々分かりづらいのが難点です。
|
23
|
+
```Python
|
24
|
+
month, sales = map(
|
25
|
+
list, zip(
|
26
|
+
*sorted(zip(month, sales))
|
27
|
+
)
|
28
|
+
)
|
18
29
|
```
|