Python符号化技術(改訂版2)Better Way-6-11

7837 ワード

Better Way 6


-記事に複数の値を入力する場合は、Unpackingを使用します。


Better Way 7


-iterableコードを記述する場合は、rangeではなく列挙を使用します。

  • indexを使用してアクセスを最小限に抑えることができます.
  • コードはより明確です.
  • abc = [1,2,3]
    for a, b in enumerate(abc, 1):  # 1은 index 1부터 시작한다는 의미
    	print(f'{a}: {b}')

    Better Way 8


    -2つのリストの値を使用してループを実行する必要がある場合はzip()を使用します。

  • の列挙と同様に、インデックスを使用したアクセスを最小限に抑えることができます.
  • abc = ['aa', 'bbb', 'cccd']
    counts = [len(n) for n in abc]
    for x, count in zip(abc, counts):
    	print(f'{x} 의 글자수: {count}')
  • zipでは、通常、インデックスの長さが同じリストが使用されます.
  • zipを使用すると、ループは2つのリストのインデックス値の小さいリストを繰り返します.
  • indexの長い回数を繰り返す必要がある場合は、次のようにします.
  • import itertools
    for a, b in itertools.zip_longest(x, y):

    Better Way 9


    -For/Hileなどの繰り返し文の後にels:。

  • を使用すると、コードだけが複雑で、良いものは一つもないので、
  • と書かないでください.

    Better Way 10


    -Python 3.8からWalrus(:=)機能を提供します。


    -代入式でwalrus(:=)を使用すると、コードではなく変数に事前に値を割り当てることができ、コードで直接変数に値を割り当てると同時に使用できます。

    a = 10
    if a > 5:
    	print(a)
    このコード
    if (a:=10) > 5:
    	print(a)
    このように一度に表現することができます.
  • 個人的にはまだよく知られていませんが、適応すればコードがきれいになるはずです.

    Better Way 11


    -スライス(slicing)を使用すると、リスト内の値をより簡単に使用できます。

    a = [1,2,3,4,5]
    a[:2] #-> [1,2]
    a[1:4] #-> [2,3,4]
    a[-2:] #-> [4, 5]
    a[1:3] = ['a','b'] #-> [1,'a','b',4,5]
    b = a[:] # b는 a를 복사한 "새로운" 리스트
    b = a # b는 "동일한" 리스트 (메모리상 하나의 리스트를 동시에 가리킴)
    * [0:len(a)] -> 0len(a)는 생략가능 *