ホームページ > バックエンド開発 > Python チュートリアル > Python プログラミングのマスター向けに書かれたデータ構造

Python プログラミングのマスター向けに書かれたデータ構造

coldplay.xixi
リリース: 2020-11-04 17:13:54
転載
1771 人が閲覧しました

pythonビデオチュートリアルコラムでは、Pythonプログラミングで注意すべきポイントを紹介します。

Python プログラミングのマスター向けに書かれたデータ構造

リスト、ディクショナリ、コレクションの条件に基づいてデータをフィルタリングする方法

ケース: 次のリスト データから 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.im
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート