前提・実現したいこと
Pythonで複数の配列を同時にソートしたい
発生している問題・エラーメッセージ
複数のリストをzipしてcというリストとし、
cというリストをソートしているつもりなのに、なぜかこのようなエラーが出ている。
AttributeError: 'zip' object has no attribute 'sort'
該当のソースコード
python
1from operator import itemgetter 2 3no = ['7', '10', '11', '5', '12', '2', '4', '9', '3', '8', '1', '6'] 4姓 = ["渡邊","柳川","清野","根本","阿部","稲田","木内","三宅","石村","本郷","山田","清野"] 5名 = ["沙樹","和臣","菜緒","駿斗","亜依","和徳","喜雄","美南","比呂","香帆","比呂","菜緒",] 6性別 = ["女","男","女","男","女","男","男","女","男","女","男","女","男","女"] 7生年月日 =["1988/07/15","1966/09/04","1979/06/08","1992/03/14","1977/04/04","1963/11/06","1972/08/21","1992/11/30","1967/12/07","1965/03/20","1977/04/04","1992/11/30"] 8 9 10 11 12# zipで二つの配列を統合 13c = zip(no, 姓 ,名 ,性別 ,生年月日) 14 15c.sort(key=itemgetter(0)) 16 17# 統合していた配列をもとに戻す 18no, 姓 ,名 ,性別 ,生年月日 = zip(*c) 19 20print(no) 21print(姓) 22print(名) 23print(性別) 24print(生年月日)
試したこと
以下の文献を参考に記述しました。
python
1from operator import itemgetter 2 3a = ["a", "b", "c"] 4b = [2, 0, 1] 5 6 7c = zip(a, b) 8 9# itemgetterには何番目の配列をキーにしたいか渡します 10c.sort(key=itemgetter(1)) 11 12a, b = zip(*c) 13 14print(a) 15print(b) 16# ('b', 'c', 'a') 17# (0, 1, 2)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。