LoginSignup
1
1

More than 1 year has passed since last update.

【Python】よく使いそうな書き方まとめ

Last updated at Posted at 2021-07-31

はじめに

Python勉強中です。
よく使うであろう、もしくは使いそうな書き方を備忘録としてまとめます。

文字列関連

文字列の演算

book = 'book'
print(book * 4)
bookbookbookbook

bool型への変換

print(bool('')) 
print(bool('bool'))
print('oo' in 'bool') # 'oo'が含まれている事を確認
print('x' not in 'book') # 'x'が含まれていない事を確認
False
True
True
True

format

a = 'Python'
b = 'YEAR!!'
print(f'{a}, {b}')
print('{}, {}'.format(a, b))
Python, YEAR!!
Python, YEAR!!

パディング

# 左詰め0埋め
print('{0:0<5}'.format(1))

# 中央寄せ
print('{0:0^5}'.format(1))

# 右詰め0埋め
print('{0:0>5}'.format(1))


# スペース埋め
print('{0: <5}'.format(1))
print('{0: ^5}'.format(1))
print('{0: >5}'.format(1))
10000
00100
00001
1    
  1  
    1

配列関連

リストの要素を変数に代入できる。

arr = [0, 1, 2]
a, b, c = arr
print(a, b, c)

x, y = arr[1:3]
print(x, y)
0 1 2
1 2

スライス

リストの要素を指定して取得できる。

arr[開始インデックス:末尾インデックス:増減幅]

※末尾インデックスで指定したインデックスの一つ前の要素が末尾となる。

 つまり、arr[x:y]の場合、arr[x]arr[y-1]までの要素が対象となる。

arr = [0, 1, 2, 3, 4, 5, 6]
print(arr[:5])
print(arr[0:5])
print(arr[1:5])
print(arr[:])
print(arr[:-1])
print(arr[0:6:2])
print(arr[::2])
print(arr[::3])
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
[1, 2, 3, 4]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5]
[0, 2, 4]
[0, 2, 4, 6]
[0, 3, 6]

リストの結合

arr = [0, 1, 2, 3, 4, 5, 6]
print(''.join(map(str, arr))) # 123456

arr = ['a', 'b', 'c', 'd', 'e']
print(''.join(arr))
print(','.join(arr))
0123456
abcde
a,b,c,d,e

リストの型変換

arr = [0, 1, 2, 3, 4, 5, 6]
arr = list(map(str, arr))
print(arr)

arr = list(map(int, arr))
print(arr)
['0', '1', '2', '3', '4', '5', '6']
[0, 1, 2, 3, 4, 5, 6]

逆順に変更

arr = [0, 1, 2, 3, 4, 5, 6]
print(arr[::-1])
[6, 5, 4, 3, 2, 1, 0]

辞書型のKeyとValueを交換

dic = {'a': 1, 'b': 2, 'c': 3}
dic = {v : k for k, v in dic.items()}
print(dic)
{1: 'a', 2: 'b', 3: 'c'}

filter

arr = [1,2,3,4,5,6]
print(list(filter(lambda i: i%2 == 0, arr)))
[2, 4, 6]

zip

2つの配列を合わせてタプルにする

nums = ['1', '2', '3', '4']
chars = ['a', 'b', 'c', 'd']
print(list(zip(nums, chars)))
[('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'd')]

Map

配列の各要素を処理する。

nums = [1, 2, 3, 4, 5]
print(list(map(lambda i: i * 2, nums)))
[2, 4, 6, 8, 10]

for文

arr = [0, 1, 2, 3, 4, 5, 6]
for item in arr:
    print(item)
0
1
2
3
4
5
6

逆順

for item in reversed(arr):
    print(item)
6
5
4
3
2
1
0

インデックスも一緒に取得したい

for i, item in enumerate(arr):
    print(i, item)
0 0
1 1
2 2
3 3
4 4
5 5
6 6

一定回数ループだけしたい

for _ in range(3):
    print("a")
a
a
a

インデックスの開始位置を変更

for i in range (2, 5):
    print(i)
2
3
4

インデックスの増幅変更

for i in range (0, 10, 2):
    print(i)
0
2
4
6
8
# インデックスをデクリメント
for i in range(10, 0, -1):
    print(i)
10
9
8
7
6
5
4
3
2
1

内包表記

numbers = [str(v) for v in range(10)]
print(numbers)
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

条件式を付ける

evens = [v for v in range(10) if v%2 == 0]
print(evens)
[0, 2, 4, 6, 8]

囲みを変えるとセットになる。

numbers = {str(v) for v in range(10)}
print(numbers)
{'7', '1', '5', '0', '6', '4', '3', '2', '9', '8'}

dictにもできる。

dic = {str(x) : x for x in range(10)}
print(dic)
{'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

2重ループで内包表記

arr = [x * y for x in range(1, 4) for y in range(1, 4)]
print(arr)
[1, 2, 3, 2, 4, 6, 3, 6, 9]

参考資料

Python実践入門: 陶山 嶺, 技術評論社

1
1
3

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
1
1