uso

雑記いろいろ
★書いてある内容に保証は一切ありません。
 ご自身で判断をしてください。

Pythonチート

2023-10-21 18:29:03 | うんちく・小ネタ
■forループ
for num in range(5):
print(num)

■文字列を数値のリストとして受け取る
s = '1, 2, 3, 4'
l = [int(x) for x in s.split(',')] # int()やfloat()は先頭・末尾の空白を無視する

🔳3項演算子、癖がある
x = true_value if condition else false_value

# 文字列の場合、空白はちゃんとSpritする必要あり
s = '1, 2, 3, 4'
l = [x.strip() for x in s.split(',')]

■最大、最小を求める
print(min([10, 20, 30, 20, 5, 3]))
print(min('Z', 'A', 'J', 'W'))

■リストの合計を求める
sample_list = [123, 13, 345, 89, 12345, 12345, 45689, 39665]
sample_list_sum = sum(sample_list)

■ソート
mylist = [18, 0, 16, 6, 15, 7, 9, 1, 2, 5]
mylist.sort(reverse=True) # 対象を直接ソートする(reverse=Trueがなければ昇順)
print(mylist) # [18, 16, 15, 9, 7, 6, 5, 2, 1, 0]

mylist = [18, 0, 16, 6, 15, 7, 9, 1, 2, 5]
newlist = sorted(mylist, reverse=True) # ソートした配列を別で作る
print(newlist) # [18, 16, 15, 9, 7, 6, 5, 2, 1, 0]

■リスト内の文字列の結合
l = ['aaa', 'bbb', 'ccc']
s = ''.join(l)
print(s)
# aaabbbccc

■特定の文字列要素が含まれるか判定
l = ['oneXXXaaa', 'twoXXXbbb', 'three999aaa', '000111222']
l_in = [s for s in l if 'XXX' in s]
print(l_in)
# ['oneXXXaaa', 'twoXXXbbb']

■リストの初期化
l = [0] * 10
print(l)
# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

# 二次元配列の場合
l_2d_ok = [[0] * 4 for i in range(3)] # 必ず内包表記を使うこと
print(l_2d_ok)
# [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

■内容表記でif判定
r = range(11)
# 偶数・奇数を判定
odd_even_list = [(x, 'odd') if x % 2 else (x, 'even') for x in r]
print(odd_even_list)
# 出力結果
#[(0, 'even'), (1, 'odd'), (2, 'even'), (3, 'odd'), (4, 'even'), (5, 'odd'),
# (6, 'even'), (7, 'odd'), (8, 'even'), (9, 'odd'), (10, 'even')]