List
list1 = ['aaa', 'bbb', 'ccc', 100, 1234]
追加
append
list1.append('ddd')
insert
list1.insert(1,'eee')
extend
list2 = ['xxx', 'yyy']
list2.extend(list1)
削除
pop
list1.pop(3)
print(list1)
list1.pop()
print(list1)
remove
list1.remove('eee')
print(list1)
del
del list1[2]
print(list1)
clear
list1.clear()
print(list1)
複製(copy)
list1 = ['aaa', 'bbb', 'ccc', 100, 1234]
list2 = list1.copy()
print(list2)
print(id(list1))
print(id(list2))
NGなコピー
list10 = [1, 2, 3]
list11 = list10
print(list11)
print(id(list10))
print(id(list11))
list11.append(4)
print(list11)
print(list10)
逆順(reverse)
list1 = ['aaa', 'bbb', 'ccc', 100, 1234]
list1.reverse()
print(list1)
x = list1[::-1]
print(x)
print(list1)
ソート
- 違う型の混在リストはソート出来ない
- ['aaa', 'bbb', 'ccc', 100, 1234] # 文字列と整数
sort
list1 = ['aaa', 'bbb', 'ccc', '100', '1234']
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)
sorted
x = sorted(list1)
print(list1)
print(x)
nesting
list33 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(list33[1])
print(list33[1][2])
col2 = [row[1] for row in list33]
print(col2)
[list33[i][i] for i in range(len(list33))]
index
dogs = ['Pochi', 'Shiro', 'Jhon']
dogs.index('Shiro')
1
複数代入法
cat = ['Tama', 3, 'white']
name, age, color = cat
値渡しと参照渡し
l1 = [1, 2, 3, 4]
l2 = [5, 6, 7, 8]
l3 = l1 + l2
print(l3)
l3[0] = 10
print(l3)
print(l1)
print(l2)
l4 = l1
l4[0] = 10
print(l4)
print(l1)
リスト内包表記
各数値を2倍する
nums = [1, 2, 3, 4, 5]
[num*2 for num in nums]
フラット化する
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[x for row in matrix for x in row]
行の合計が10より大きくて、要素が偶数である
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[x for x in row if x % 2 == 0] for row in matrix if sum(row) > 10]
行列変換
arrs = [[1, 2, 3], [4, 5, 6]]
[list(a) for a in zip(*arrs)]
各要素がすべて真か判定
arrs = [1, 2, 3, 4, 5]
all(arrs)
arrs = [0, 1, 2, 3, 4]
all(arrs)
各要素のどれか1つが真か判定
arrs = [0, 1, 0]
any(arrs)
arrs = [0, 0.0, "", [], (), {}, False, None]
any(arrs)