「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python のメモ/トリック/レッスン/ニュアンス

Python のメモ/トリック/レッスン/ニュアンス

2024 年 11 月 1 日に公開
ブラウズ:400

Python notes/tricks/lessons/nuances

C のトリックの投稿をしました。私が知っているトリックについてもっと書きたいと思いました。なぜなら、C でコーディングしたにもかかわらず、ほとんどのトリックは Python と JS で書かれているからです。他にもたくさんありますが、とにかくここにあります。基本的な Python 構文に関する些細なことから始めますが、初心者には知られていないことがいくつかあり、星印を付けています ⭐️:

1. リスト

  • アイテムのデータ構造の順序付けられたコレクション
  • 複数のタイプを持つことができます
  • aa = ["リンゴ", 'd', 3, 9.3]

初期化:

  1. a = [1, 2]
  2. a = リスト()
  3. a = リスト([2, 3])
  4. [0]*5
  5. concat_list = リスト1 リスト2

要素へのアクセス ⭐️

  • 0 ... n-1 および -n ... -1

機能

  • レン(リスト1)
  • a.append(値)
  • a.insert(index, value): インデックスに値を挿入し、すべてを右にプッシュします
  • a.pop(): 終了値を返し、それを削除します
  • a.remove(value): 値が存在しない場合は、ValueError が発生します。
  • a.clear()
  • a.reverse(): その場で反転
  • a.sort(): 元の
  • を変更します
  • b =sorted(a): オリジナル
  • を変更しません

スライス⭐️

リストの部分配列にアクセスする簡単な方法

  • スライスリスト = a[1:5]: インデックス 1 で開始し、インデックス 5 で終了します。インデックス 5 は除外されます
  • スライスリスト = a[:3]: 0 ... 2
  • から
  • スライスリスト = a[1:3]: 1 から 2
  • slicedList = a[:]: リスト全体を複製します
  • スライスリスト = myList[::2]: ステップ インデックス、2 番目の項目ごと、最初から開始、基本的に i=0;i
  • slicedList = myList[::-1]: リストを反転する良い方法

リストをコピーする

1. 浅いコピー

  • a = [1, 2, 3]
  • b = a

どちらも同じメモリ割り当てであるため、一方を変更すると他方も変更されます

2. ディープコピー ⭐️

3 つの方法:

  1. b = a.copy()
  2. b = リスト(a)
  3. b = a[:]

リストの内包表記

基本的なリストの内包表記から始めますが、すぐに簡単ではなくなります。

  • 値 = [範囲(10)のxに対してx 1] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

- 値 = [x % 2 == 0 の場合、range(51) の x の x]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

ネストされたリストの内包 ⭐️

リストのリストまたは 2D 行列の平坦化
ネストされたリストの内包: 行列 (リストのリスト) の平坦化 ⭐️

例: 行列 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
  • その他のリスト内包表記:
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
  • この構文 ->
    "偶数" if x % 2 == 0 else "奇数" は Python の多くの場所で有効です。変数に入れることもできます。これは基本的に三項演算子ですが、より冗長です

  • ⭐️ リストの内包表記を理解するには、常に式の左側と右側を見てください。ネストされたループは左から右に進みます。if else が for ループの左側にある場合は、どの値がチェックされるかを確認します。 if else 条件に応じて挿入する必要がありますか。一方、for ループが右側にある場合は list

  • からフィルタリングしようとします。
  • たとえば、5x5x5 のリストを作成するには: ⭐️

values = [[[num 1 for num in range(5)] for _ in range(5)] for _ in range(5)]

⭐️ for ループの最も外側を探します。その左側にあるものはすべてvalues[] 配列に追加されます。この構文の意味は、for _ in range(5) にあるものはすべて実行したいということです。この左側の for ループを 5 回実行します (反復ごとのイテレータ変数の値を気にしないため)

  • 内包表記内の関数:\ 値 = [有効な場合、値の x には x**2(x)]

辞書の理解

ペアがある場合 = [("a", 1), ("b", 2)]: ペアまたはタプルのリスト

-> my_dict = {k:v for k, v inpairs}: 値のアンパック。これが機能するには、ペアの各「ペア」に正確に 2 つのエンティティが必要です

集合内包表記

数値 = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

とします

unique_nums = {x for x in nums}: キーがないため、Python はこれがセットである必要があることを認識します

時間ができたらこれを書きますが、まだここで確認できます: AdvancedPythonConcepts これは、私が初めて Python の概念を学んだときに文書化した私の git リポジトリです。時間ができたら、このリポジトリに基づいてこの記事を書きます...

リリースステートメント この記事は次の場所に転載されています: https://dev.to/yashdevs/python-tricks-5b0c?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3