ケース: 次のリスト データから 0 より大きい数値をフィルタリングする方法
data = [1, -1, 2, 3, 4, 7]复制代码
フィルター関数を使用します。最初のパラメーターは関数であるか、次のコードのようにラムダ式を渡すこともできます。
list(filter(lambda x: x >= 0, data))复制代码
別の解決策は、次のようにリスト生成を使用することです。この解決策は、前の解決策よりも効率的です。
print([x for x in data if x >= 0])复制代码
辞書などのデータ構造では、同様の辞書作成も使用できます。
from random import randint d = { x: randint(60, 100) for x in range(1, 21)} {k:v for k, v in d.items() if v >= 90}复制代码
解決策: 定数を定義し、次のコードのように定数を使用してタプル内の要素にインデックスを付けます
stu = ('hao', 18, 'male', '1078244513@qq.com') NAME = 0AGE = 1SEX = 2print(stu[SEX])复制代码
解決策: コレクション パッケージのnamedtuple 関数を使用します。この関数は新しい「クラス」の定義を返し、次のように使用されます。
from collections import namedtuple Stu = namedtuple('Stu', ['name', 'age', 'sex', 'email'])# stu = Stu('hao', 18, 'male', '1078244513@qq.com')stu = Stu(name='hao', age=18, sex='male', email='1078244513@qq.com') print(stu.email)复制代码
問題: 次の数値リスト内の各数値の出現数を数えます
from random import randint data = [randint(0, 20) for _ in range(30)]复制代码
計画: dict (辞書) を定義し、配列を反復処理します。
c = dict.fromkeys(data, 0)复制代码
上記のコードは、データ内のさまざまな値をキーとし、値として 0 を持つ辞書オブジェクトを生成します。
for x in data: c[x] += 1复制代码
解決策: コレクション パッケージの Counter 関数を使用します。
c2 = Counter(data)复制代码
この解決策では、最も多く表示される上位のいくつかを簡単に取得することもできます。
c2.most_common(3)复制代码
問題: 次の辞書内の値を並べ替えます
cj = {x: randint(60, 100) for x in 'xyzabc'}复制代码
スキーム:sorted 関数内 2 番目のパラメーターとして関数オブジェクトを渡すことができ、sorted は関数の戻り値に基づいて並べ替えます。
sorted(cj.items(), key=lambda item:item[1])复制代码
注: この関数は新しい辞書オブジェクトを返します
まず、キーを紹介しましょう。 Python のサンプリング関数のサンプル。ランダム パッケージにあります。これはシーケンス タイプ パラメータと数値を受け取り、シーケンスからランダムにサンプリングされたシーケンスを返します。以下のコード。
from random import sample sample('abcdefg', 3)复制代码
質問: 次の 3 つのコレクションの共通キーを取得する方法。
s1 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))} s2 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))} s3 = {x : randint(1, 4) for x in sample('abcdefg', andint(3, 6))}复制代码
このタスクは、集合の交差演算を使用して実行できます。
s1.keys() & s2.keys() & s3.keys()复制代码
コレクション パッケージの OrderedDict タイプは、辞書に入力された順序を維持します。
関連する無料学習の推奨事項: Python ビデオ チュートリアル
以上がPython プログラミングのマスター向けに書かれたデータ構造の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。