回答編集履歴
3
編集
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
アルファベットが複数文字のときは、次のような関数を作ると良さそうですね。
|
40
40
|
|
41
|
-
(
|
41
|
+
(その気になればindex errorやrecursion errorを起こせますが、普通に使う分には問題ないです。)
|
42
42
|
|
43
43
|
```Python
|
44
44
|
|
2
追記
test
CHANGED
@@ -31,3 +31,41 @@
|
|
31
31
|
['A1', 'B1', 'A2', 'B2', 'A3', 'B3', 'A4', 'B4', 'A5', 'B5', 'A6', 'B6', 'A7', 'B7', 'A8', 'B8', 'A9', 'B9', 'A10', 'B10']
|
32
32
|
|
33
33
|
```
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
---
|
38
|
+
|
39
|
+
アルファベットが複数文字のときは、次のような関数を作ると良さそうですね。
|
40
|
+
|
41
|
+
(数字を含まない場合はindex errorで落ちますが)
|
42
|
+
|
43
|
+
```Python
|
44
|
+
|
45
|
+
def find_first_num(arg, i=0):
|
46
|
+
|
47
|
+
if not arg[0].isalpha():
|
48
|
+
|
49
|
+
return i
|
50
|
+
|
51
|
+
return find_first_num(arg[1:], i+1)
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
こんな風に、英字と数字を分離できます。
|
58
|
+
|
59
|
+
```Python
|
60
|
+
|
61
|
+
>>> hoge = 'LouiS0616'
|
62
|
+
|
63
|
+
>>> hoge[:find_first_num(hoge)]
|
64
|
+
|
65
|
+
'LouiS'
|
66
|
+
|
67
|
+
>>> hoge[find_first_num(hoge):]
|
68
|
+
|
69
|
+
'0616'
|
70
|
+
|
71
|
+
```
|
1
修正
test
CHANGED
@@ -24,10 +24,10 @@
|
|
24
24
|
|
25
25
|
>>>
|
26
26
|
|
27
|
-
>>> AB.sort(key=lambda x: int(x[1:]))
|
27
|
+
>>> AB.sort(key=lambda x: (int(x[1:]), x[0]))
|
28
28
|
|
29
29
|
>>> print(AB)
|
30
30
|
|
31
|
-
['A1', 'B1', 'A2', 'B2', '
|
31
|
+
['A1', 'B1', 'A2', 'B2', 'A3', 'B3', 'A4', 'B4', 'A5', 'B5', 'A6', 'B6', 'A7', 'B7', 'A8', 'B8', 'A9', 'B9', 'A10', 'B10']
|
32
32
|
|
33
33
|
```
|