ホームページ > バックエンド開発 > Python チュートリアル > 私が書いた Python コードは同僚に褒められました。

私が書いた Python コードは同僚に褒められました。

王林
リリース: 2023-04-12 13:43:12
転載
1240 人が閲覧しました

人生は短いので、私は Python を使用しています。

プログラマーの追求は、コードを書かずにできるだけ早く経済的自由を達成することです。いや、うっかり本当のことを言ってしまいました。コードは簡潔かつエレガントに書くべきでした。

Python プログラマーの追求は Python です。Python 言語の中にも、コードを簡潔、エレガント、そしてユニークなものにする「隠された」メソッドがたくさんあります。

ここでは、特にリストと辞書に関する一般的な操作をいくつかまとめて共有します。

最初の文字は大文字です

この方法は少し興味深いもので、偶然発見しました。

>>> s = "programming is awesome"
>>> print(s.title())
Programming Is Awesome
ログイン後にコピー

リストのマージ

最初の方法: を使用します。

>>> a + b
[1, 2, 3, 4, 5, 6]
ログイン後にコピー

2 番目の方法: extend キーワードを使用します。

>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
ログイン後にコピー

後の 2 つの方法は明らかにより洗練されており、お勧めします。注意すべき点は、リストが大きい場合は速度が低下するため、extend を使用することをお勧めします。

リスト要素の重複排除

リスト要素の重複排除には set() を使用します。

>>> a = [1, 2, 3, 4, 2, 3]
>>> list(set(a))
[1, 2, 3, 4]
ログイン後にコピー

リストの並べ替え

sort() または組み込み関数sorted() を使用して、リストを並べ替えます。それらの間には 2 つの違いがあります。

  • sort() メソッドは元のリストに基づいて動作するのに対し、sorted() メソッドは元に基づいて動作するのではなく、新しいリストを返します。
  • sort() はリストに適用されるメソッドですが、sorted() はすべての反復可能なオブジェクトを並べ替えることができます。
# sort()
>>> a = [1, 2, 3, 4, 2, 3]
>>> a.sort()
>>> a
[1, 2, 2, 3, 3, 4]
>>>
>>> a = [1, 2, 3, 4, 2, 3]
>>> a.sort(reverse=True)
>>> a
[4, 3, 3, 2, 2, 1]

# sorted()
>>> a = [1, 2, 3, 4, 2, 3]
>>> sorted(a)
[1, 2, 2, 3, 3, 4]
>>> a = [1, 2, 3, 4, 2, 3]
>>> sorted(a, reverse=True)
[4, 3, 3, 2, 2, 1]
ログイン後にコピー

リストのインデックスと要素のペアを走査する

enumerate() 関数を使用して、インデックスと要素の値を同時に出力します。

>>> a = ['python', 'go', 'java']
>>> for i, v in enumerate(a):
... print(i, v)

# output
0 python
1 go
2 java
ログイン後にコピー

リスト内で最も頻繁に出現する要素を検索する

max() 関数を使用して、リスト内で最も頻繁に出現する要素をすばやく見つけます。

>>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2]
>>> b = max(set(a), key=a.count)
>>> b
4
ログイン後にコピー

注意すべき点は、リスト内に 2 つの要素が同じ回数出現する場合、最初に出現する要素が返されるということです。

>>> a = [1, 2]
>>> b = max(set(a), key=a.count)
>>> b
1
ログイン後にコピー

リスト内のすべての要素の出現を数える

前のコードは、最も頻繁に出現する値を示します。リスト内のすべての要素の出現数を知りたい場合は、コレクション モジュールを使用できます。

collections は、多くの機能を提供する Python の宝モジュールです。 Counter メソッドはこの要件を完全に解決できます。

>>> from collections import Counter
>>>
>>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2]
>>> Counter(a)
Counter({4: 4, 2: 2, 3: 2, 1: 1, 5: 1})
ログイン後にコピー

2 つのリストを 1 つの辞書にマージする

zip() 関数を使用して、2 つのリストを 1 つの辞書にマージします。

>>> a = ['one', 'tow', 'three']
>>> b = [1, 2, 3]
>>> dict(zip(a, b))
{'one': 1, 'tow': 2, 'three': 3}
ログイン後にコピー

2 つのリストの共通部分、和集合、および相違点を見つけます。

# list_operate.py

def main():
list_a = [1, 2, 3, 4, 5]
list_b = [4, 5, 6, 7, 8]

# 求交集的两种方式
res_a = [i for i in list_a if i in list_b]
res_b = list(set(list_a).intersection(set(list_b)))

print(f"res_a is: {res_a}")
print(f"res_b is: {res_b}")

# 求并集
res_c = list(set(list_a).union(set(list_b)))
print(f"res_c is: {res_c}")

# 求差集的两种方式,在B中但不在A中
res_d = [i for i in list_b if i not in list_a]
res_e = list(set(list_b).difference(set(list_a)))

print(f"res_d is: {res_d}")
print(f"res_e is: {res_e}")


if __name__ == '__main__':
main()
ログイン後にコピー

辞書の作成

# 1、创建空字典
a = {}
b = dict()

# 2、有初始值,从输入的便利程度来说,我更喜欢第二种
a = {'a': 1, 'b': 2, 'c': 3}
b = dict(a=1, b=2, c=3)

# 3、key 来自一个列表,而 value 相同, 使用 fromkeys,那是相当的优雅
keys = ['a', 'b', 'c']
value = 100
d = dict.fromkeys(keys, value)

# 4、key 来自一个列表,而 value 也是一个列表,使用 zip
keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = dict(zip(keys, values))
ログイン後にコピー

辞書のマージ

m = {'a': 1}
n = {'b': 2, 'c': 3}

# 合并,两种方式
# 1、使用 update
m.update(n)
# 2、使用 **
{**m, **n}
ログイン後にコピー

キーが存在するかどうかを判断する

Python2でキーが存在するかどうかを判断するには、 has_key を使用できます。ただし、このメソッドは Python3 では削除されました。

もう 1 つの方法は、in キーワードを使用することです。これは、Python2 および Python3 と互換性があるだけでなく、より高速であり、強く推奨されます。

d = {'a': 1, 'b': 2}
if 'a' in d:
print('hello')
ログイン後にコピー

辞書の値を取得

d = {'a': 1, 'b': 2}

# 1、直接用 key 取值,但这种方式不好,如果 key 不存在会报错,推荐使用 get
a = d['a']

# 2、使用 get,如果 key 不存在还可以赋默认值
a = d.get('a')
c = d.get('c', 3)
ログイン後にコピー

辞書トラバーサル

d = {'a': 1, 'b': 2, 'c': 3}

# 遍历 key
for key in d.keys():
pass

# 遍历 value
for value in d.values():
pass

# 遍历 key 和 value
for key, value in d.items():
pass
ログイン後にコピー

辞書内包

リスト内包と辞書内包は私のお気に入りの機能で、シンプルで効率的です。 。マップとフィルターはほとんど使用できなくなりました。

l = [1, 2, 3]
{n: n * n for n in l}
{1: 1, 2: 4, 3: 9}
ログイン後にコピー

ディクショナリはキーまたは値でソートされます

d = {'a': 1, 'b': 2, 'e': 9, 'c': 5, 'd': 7}

# 按 key 排序
sorted(d.items(), key=lambda t: t[0])
# 按 key 倒序
sorted(d.items(), key=lambda t: t[0], reverse=True)

# 按 value 排序
sorted(d.items(), key=lambda t: t[1])
ログイン後にコピー

開発プロセス中によく遭遇するもう 1 つの要件があります。それは、リストがあり、リストの要素がディクショナリであることです。次に、辞書の値で並べ替えます。リストを並べ替えます。

rree

以上が私が書いた Python コードは同僚に褒められました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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