Pythonは短くてわかりやすい構文で知られています。Pythonはシンプルなので、しばしば「実行可能疑似コード」と呼ばれます。ワンライナーコードを使用すると、Pythonプログラムをより簡潔にすることができます。これにより、時間を節約し、よりPython的な方法でコードを書くのに役立ちます。
この記事では、熟練したプログラマーのようにコードを書くのに役立つ、重要なPythonワンライナーを紹介します。
この記事で使用されているコードはGitHubリポジトリで公開されており、MITライセンスに基づいて無料で使用できます。
1. 文字列を整数に変換する
組み込みのint()関数を使用して、文字列を整数に変換できます。
str1 = '0' str2 = '100' str3 = '587' print(int(str1)) print(int(str2)) print(int(str3))
出力:
0 100 587
2. リストを逆順にする
さまざまな方法を使用して、Pythonでリストを逆順にすることができます:
スライシングテクニックを使用する
このテクニックを使用すると、元のリストは変更されませんが、リストのコピーが作成されます。
arr = [1, 2, 3, 4, 5, 6] print(arr) reversedArr = arr[::-1] print(reversedArr)
出力:
[1, 2, 3, 4, 5, 6] [6, 5, 4, 3, 2, 1]
同じスライシングテクニックを使用して、Pythonで文字列を逆順にすることができます。
s = "Welcome" print(s) reversedString = s[::-1] print(reversedString)
出力:
Welcome emocleW
組み込みのreversed()関数を使用する
reversed()関数は、与えられたリストに逆順でアクセスするイテレータを返します。
arr = [1, 2, 3, 4, 5, 6] print(arr) reversedArr = list(reversed(arr)) print(reversedArr)
出力:
[1, 2, 3, 4, 5, 6] [6, 5, 4, 3, 2, 1]
組み込みのreverse()メソッドを使用する
reverse()メソッドは、元のリストの要素を逆順にします。
arr = [1, 2, 3, 4, 5, 6] print(arr) arr.reverse() print(arr)
出力:
[1, 2, 3, 4, 5, 6] [6, 5, 4, 3, 2, 1]
3. 2つの変数をスワップする
以下の構文を使用して2つの変数をスワップできます:
variable1, variable2 = variable2, variable1
このメソッドを使用すると、任意のデータ型の変数をスワップできます。
a = 100 b = 12 print("Value of a before swapping:", a) print("Value of b before swapping:", b) a, b = b, a print("Value of a after swapping:", a) print("Value of b after swapping:", b)
出力:
Value of a before swapping: 100 Value of b before swapping: 12 Value of a after swapping: 12 Value of b after swapping: 100
4. PythonでのFizzBuzzワンライナー
FizzBuzzチャレンジは、コンピュータープログラマーの面接スクリーニングデバイスとして使用される古典的なチャレンジです。たった1行のコードでFizzBuzzチャレンジを解決できます:
for i in range(1, 21): print("Fizz"*(i%3==0)+"Buzz"*(i%5==0) or str(i))
出力:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz
5. ランダムなパスワードを生成する
以下のワンライナーコードを使用して、Pythonでランダムなパスワードを生成できます:
import random as r; p = 'abcdefghijklmnopqrstuvwxyz0123456789%^*(-_=+)'; print(''.join(r.choices(p, k=10)))
出力:
v4+zagukpz
このコードは長さ10のパスワードを生成します。パスワードの長さを変更する場合は、choices()メソッドのパラメータを更新します。また、コードを実行するたびに、異なるランダムな出力が得られます。
6. 現在の日時を文字列形式で表示する
datetimeモジュールを使用して、Pythonで現在の日時を表示できます。現在の日時を文字列形式で表示するワンライナーコードを以下に示します:
import datetime; print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
出力:
2021-11-22 14:35:41
7. 文字列が回文であるかどうかを確認する
元の文字列とその逆が同じ場合、その文字列は回文であると言われます。以下のコードを使用して、文字列が回文であるかどうかを確認できます:
str1 = "MUO" str2 = "madam" str3 = "MAKEUSEOF" str4 = "mom" print('Yes') if str1 == str1[::-1] else print('No') print('Yes') if str2 == str2[::-1] else print('No') print('Yes') if str3 == str3[::-1] else print('No') print('Yes') if str4 == str4[::-1] else print('No')
出力:
No Yes No Yes
8. 数字の階乗を求める
非負整数nの階乗は、n以下のすべての正整数の積です。lambda関数を使用して、1行のコードで数字の階乗を求めることができます。Pythonのラムダ関数は、知っておくべき最も重要な機能の1つです。
num1 = 5 num2 = 0 num3 = 10 num4 = 12 factorial = lambda num : 1 if num <= 1 else num*factorial(num-1) print("Factorial of", num1, ":", factorial(num1)) print("Factorial of", num2, ":", factorial(num2)) print("Factorial of", num3, ":", factorial(num3)) print("Factorial of", num4, ":", factorial(num4))
出力:
Factorial of 5 : 120 Factorial of 0 : 1 Factorial of 10 : 3628800 Factorial of 12 : 479001600
フィボナッチ数列をn項まで表示する
フィボナッチ数列とは、0と1から始まり、各項がその前の2項の和となる数列のことです。Pythonのlambda関数を使用して、n項までのフィボナッチ数列を表示することができます。
from functools import reduce; fibSequence = lambda n: reduce(lambda x, _: x+[x[-1]+x[-2]], range(n-2), [0, 1]) print(fibSequence(10)) print(fibSequence(5)) print(fibSequence(6))
出力:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34] [0, 1, 1, 2, 3] [0, 1, 1, 2, 3, 5]
リストの合計を計算する
Pythonのsum()関数を使用して、リストの合計を計算することができます。
list1 = [1, 2, 3, 4, 5, 6, 7] list2 = [324, 435, 456] list3 = [0, 43, 35, 12, 45] print(sum(list1)) print(sum(list2)) print(sum(list3))
出力:
28 1215 135
リストをソートする
sort()メソッドを使用して、リストをソートすることができます。同じコードをワンライナーで記述すると以下のようになります:
list1 = [12, 345, 123, 34, 23, 37] list2 = ['m', 'a', 'k', 'e', 'u', 's', 'e', 'o', 'f'] list3 = [5, 4, 3, 2, 1] print("Before Sorting:") print(list1) print(list2) print(list3) list1.sort() list2.sort() list3.sort() print("After Sorting:") print(list1) print(list2) print(list3)
出力:
Before Sorting: [12, 345, 123, 34, 23, 37] ['m', 'a', 'k', 'e', 'u', 's', 'e', 'o', 'f'] [5, 4, 3, 2, 1] After Sorting: [12, 23, 34, 37, 123, 345] ['a', 'e', 'e', 'f', 'k', 'm', 'o', 's', 'u'] [1, 2, 3, 4, 5]
組み込みのメソッドと関数を使用して、よりPython的なコードを書く
組み込みのメソッドと関数は、コードを短縮し、その効率を高めるのに役立ちます。Pythonには、reduce()、split()、enumerate()、eval()など、多くの組み込みメソッドと関数が用意されています。それらすべてを活用して、よりPython的なコードを書きましょう。
コメントする