0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python リストの操作

Last updated at Posted at 2019-06-14

#多次元リストのソート
多次元リストをソートする際、評価基準を指定することができるようです。
また、その評価基準は複数指定できるようです。
その際、sort(key=lambda x:(x[0],x[1]))の x:以降の引数を第一引数から順に優先して評価するようです。

2Dsort_1.py
list = [[10,4],[3,6],[4,9],[5,0],[4,6],[2,0]]
list.sort(key=lambda x:x[0]) 
print(list)
#[[2, 0], [3, 6], [4, 9], [4, 6], [5, 0], [10, 4]]
list.sort(key=lambda x:x[1])
print (list)
#[[2, 0], [5, 0], [10, 4], [3, 6], [4, 6], [4, 9]]
list.sort(key=lambda x:(x[0],x[1]))
print (list)
#[[2, 0], [3, 6], [4, 6], [4, 9], [5, 0], [10, 4]]

また、リストの要素は数値同士でなくてもよいのです。
下のように['文字列','数値']のソートも可能。

2Dsort_2.py
list = [['ab',4],['a',6],['abc',9],['abc',0],['rklel',6],['gke',0]]
list.sort(key=lambda x:(x[0],x[1]))
print (list)
#[['a', 6], ['ab', 4], ['abc', 0], ['abc', 9], ['gke', 0], ['rklel', 6]]

#zip関数

組み込み関数 - zip() — Python 3.7.1 ドキュメント
for文で複数のリストを一度に取得可能。

zip.py
food = ['Apple', 'Bread', 'Caree']
cost = [300, 150, 600]
for name, age in zip(food, cost):
    print(name, age)
#Apple 300
#Bread 150
#Caree 600

set集合

list型を集合に変えることができる。
その際リストの重複要素は取り除かれる。
辞書型はkeyの値のみを重複を取り除いた集合になる。
文字列は重複する文字を除いた一文字ずつの集合になる。

set.py
set1 = set([1,2,3,3,2,1,4,6,5,4])
set2 = set(['a','b','c','b','b','a','d'])
set3 = set({'a':'A', 'b':'B', 'c':'C','a':'A'})
set4 = set('sssaaaklm')
print(set1) # {1, 2, 3, 4, 5, 6}
print(set2) # {'b', 'c', 'a', 'd'}
print(set3) # {'b', 'c', 'a'}
print(set4) # {'m', 's', 'a', 'k', 'l'}

#参考記事
https://qiita.com/fantm21/items/6df776d99356ef6d14d4
https://uxmilk.jp/14834

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?