In [1]:
import pprint
In [2]:
l = ['沖縄県', '東京都', '北海道', '京都府']
In [3]:
print(sorted(l))
In [4]:
tdfk = ['北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',
'茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',
'新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',
'静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',
'奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',
'徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',
'熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県']
In [5]:
print(sorted(l, key=tdfk.index))
In [6]:
d_tdfk = dict(zip(tdfk, range(len(tdfk))))
print(d_tdfk)
In [7]:
print(sorted(l, key=lambda x: d_tdfk[x]))
In [8]:
l = ['沖縄県', '東京都', '北海道', '京都府', 'xxx']
In [9]:
# print(sorted(l, key=tdfk.index))
# ValueError: 'xxx' is not in list
In [10]:
print(sorted(l, key=lambda x: tdfk.index(x) if x in tdfk else -1))
In [11]:
print(sorted(l, key=lambda x: tdfk.index(x) if x in tdfk else float('inf')))
In [12]:
print(sorted(l, key=lambda x: d_tdfk.get(x, -1)))
In [13]:
print(sorted(l, key=lambda x: d_tdfk.get(x, float('inf'))))
In [14]:
l = ['沖縄県', '東京', '北海道', '京都府']
In [15]:
# print(sorted(l, key=tdfk.index))
# ValueError: '東京' is not in list
In [16]:
tdfk_head2 = [s[:2] for s in tdfk]
pprint.pprint(tdfk_head2, compact=True)
In [17]:
print(sorted(l, key=lambda x: tdfk_head2.index(x[:2])))
In [18]:
l = ['沖縄県', '東京', '北海道', '京都府', 'xxx']
print(sorted(l, key=lambda x: tdfk_head2.index(x[:2]) if x[:2] in tdfk_head2 else -1))
In [19]:
l = ['沖縄県', '東京', '東京都', '北海道', '京都府']
print(sorted(l, key=lambda x: tdfk_head2.index(x[:2])))
In [20]:
l = ['沖縄県', '東京都', '東京', '北海道', '京都府']
print(sorted(l, key=lambda x: tdfk_head2.index(x[:2])))
In [21]:
tdfk_ex = sorted(tdfk + [s[:-1] for s in tdfk], key=lambda x: tdfk_head2.index(x[:2]))
tdfk_ex.remove('北海')
pprint.pprint(tdfk_ex, compact=True)
In [22]:
l = ['沖縄県', '東京', '東京都', '北海道', '京都府']
print(sorted(l, key=tdfk_ex.index))
In [23]:
l = ['沖縄県', '東京都', '東京', '北海道', '京都府']
print(sorted(l, key=tdfk_ex.index))