ホームページ  >  記事  >  バックエンド開発  >  Python に関する 17 の役立つヒントを共有しましょう。

Python に関する 17 の役立つヒントを共有しましょう。

PHPz
PHPz転載
2023-04-17 09:22:04703ブラウズ

Python に関する 17 の役立つヒントを共有しましょう。

#本文

皆さんこんにちは、私はPython人工知能テクノロジーです。

この記事では、最も一般的に使用される Python のトリックについて説明します。これらのテクニックのほとんどは、私が日常の仕事で使用している単純なトリックであり、良いものは皆で共有する必要があると思います。

早速、始めましょう! :)

ヒントの概要

1. ユーザーからの複数の入力の処理

ループや反復を使用するために、ユーザーから複数の入力を取得する必要がある場合があります。一般的な記述方法は次のとおりです:

# bad practice码
n1 = input("enter a number : ")
n2 = input("enter a number : ")
n2 = input("enter a number : ")
print(n1, n2, n3)

しかし、より良い処理方法は次のとおりです:

# good practice
n1, n2, n3 = input("enter a number : ").split()
print(n1, n2, n3)

2. 複数の条件文の処理

複数の条件文をチェックする必要がある場合コード内のステートメント。この時点で、all() または any() 関数を使用して目的を達成できます。一般に、複数の and 条件がある場合は all() が使用され、複数の or 条件がある場合は any() が使用されます。このように使用すると、コードがより明確で読みやすくなり、デバッグ時のトラブルを回避するのに役立ちます。

all() の一般的な例は次のとおりです:

size = "lg"
color = "blue"
price = 50
# bad practice
if size == "lg" and color == "blue" and price < 100:
 print("Yes, I want to but the product.")

より良い処理方法は次のとおりです:

# good practice
conditions = [
 size == "lg",
 color == "blue",
 price < 100,
]
if all(conditions):
 print("Yes, I want to but the product.")

any() の一般的な例は次のとおりです。

# bad practice
size = "lg"
color = "blue"
price = 50
if size == "lg" or color == "blue" or price < 100:
 print("Yes, I want to but the product.")

これを処理するより良い方法は次のとおりです:

# good practice
conditions = [
 size == "lg",
 color == "blue",
 price < 100,
]
if any(conditions):
 print("Yes, I want to but the product.")

3. 数値パリティを決定する

これは実装が簡単で、ユーザーから入力を取得して変換します。それを整数に変換するには、数値 2 を確認します。 の剰余演算。剰余が 0 の場合、それは偶数です。

print('odd' if int(input('Enter a number: '))%2 else 'even')

4. 変数の交換

Python で変数の値を交換する必要がある場合、操作するための一時変数を定義する必要はありません。一般に、変数交換を実装するには次のコードを使用します:

v1 = 100
v2 = 200
# bad practice
temp = v1
v1 = v2
v2 = temp

しかし、より良い処理方法は次のとおりです:

v1 = 100
v2 = 200
# good practice
v1, v2 = v2, v1

5. 文字列が回文文字列であるかどうかを判断します

文字を変更する 文字列を反転する最も簡単な方法は [::-1] で、コードは次のとおりです:

print("John Deo"[::-1])

6. 文字列を反転する

文字列が回文であるかどうかを判断します。 Python String の場合は、ステートメント

string.find(string[::-1])== 0 を使用するだけです。サンプル コードは次のとおりです:

v1 = "madam" # is a palindrome string
v2 = "master" # is not a palindrome string
print(v1.find(v1[::-1]) == 0) # True
print(v1.find(v2[::-1]) == 0) # False

7。次の場合は Inline を使用してみてください。ステートメント

ほとんどの場合、条件の後にステートメントは 1 つだけなので、インライン if ステートメントを使用すると、より簡潔なコードを作成できます。たとえば、一般的な記述方法は次のとおりです:

name = "ali"
age = 22
# bad practices
if name:
 print(name)
if name and age > 18:
 print("user is verified")

しかし、より良い処理方法は次のとおりです:

# a better approach
print(name if name else "")
""" here you have to define the else condition too"""
# good practice
name and print(name)
age > 18 and name and print("user is verified")

8. リスト内の重複した要素を削除します

私たちはしません。重複要素をチェックするにはリスト List 全体を走査する必要がありますが、単純に set() を使用して重複要素を削除できます。コードは次のとおりです:

lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0]
print(lst)
unique_lst = list(set(lst))
print(unique_lst)

9. リスト内で最も繰り返される要素を見つけます

Python ( ) 関数で max を使用し、list.count をキーとして渡すと、リスト内で最も繰り返しの多い要素を見つけることができます。コードは次のとおりです:

lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0]
most_repeated_item = max(lst, key=lst.count)
print(most_repeated_item)

10. リスト生成

Python での私のお気に入り List Comprehension の機能はリスト内包表記です。この機能により、非常に簡潔で強力なコードを書くことができ、これらのコードは自然言語とほぼ同じくらい理解しやすくなります。例は次のとおりです:

numbers = [1,2,3,4,5,6,7]
evens = [x for x in numbers if x % 2 is 0]
odds = [y for y in numbers if y not in evens]
cities = ['London', 'Dublin', 'Oslo']
def visit(city):
 print("Welcome to "+city)
for city in cities:
 visit(city)

11. *args を使用して複数のパラメーターを渡します

Python では、*args を使用して複数のパラメーターを関数に渡すことができます。例は次のとおりです:

def sum_of_squares(n1, n2)
 return n1**2 + n2**2
print(sum_of_squares(2,3))
# output: 13
"""
what ever if you want to pass, multiple args to the function
as n number of args. so let's make it dynamic.
"""
def sum_of_squares(*args):
 return sum([item**2 for item in args])
# now you can pass as many parameters as you want
print(sum_of_squares(2, 3, 4))
print(sum_of_squares(2, 3, 4, 5, 6))

12. ループ中の添字の処理

作業中に、ループ内の要素の添字を取得したいことがありますが、一般的に、より洗練された書き方は次のとおりです。

lst = ["blue", "lightblue", "pink", "orange", "red"]
for idx, item in enumerate(lst):
print(idx, item)

13. リスト内の複数の要素の結合

Python では、通常、リスト内のすべての要素を結合するために Join() 関数が使用されます。もちろん、結合を追加することもできます。例は次のとおりです:

names = ["john", "sara", "jim", "rock"]
print(", ".join(names))

14. 2 つの辞書をマージします

さらに、パブリック アカウントの先頭の Python 背景を検索し、「上級」と返信すると、驚きが得られます。ギフトパッケージ。

Python では、{**dict_name, **dict_name2, …} を使用して複数の辞書を結合できます。例は次のとおりです:

d1 = {"v1": 22, "v2": 33}
d2 = {"v2": 44, "v3": 55}
d3 = {**d1, **d2}
print(d3)

結果は次のとおりです:

{'v1': 22, 'v2': 44, 'v3': 55}

15 2 つのリストを使用して辞書を生成する

Python では、2 つのリスト内の対応する要素を結合して辞書を作成する必要がある場合、zip 関数を使用して簡単にこれを行うことができます。コードは次のとおりです:

keys = ['a', 'b', 'c']
vals = [1, 2, 3]
zipped = dict(zip(keys, vals))

16. 値に従って辞書を並べ替えます
Python では、sorted() 関数を使用して、値に従って辞書を並べ替えます。 :

d = {
 "v1": 80,
 "v2": 20,
 "v3": 40,
 "v4": 20,
 "v5": 10,
}
sorted_d = dict(sorted(d.items(), key=lambda item: item[1]))
print(sorted_d)
当然我们也可以使用itemgetter( )来替代上述 lambda函数,代码如下:
from operator import itemgetter
sorted_d = dict(sorted(d.items(), key=itemgetter(1)))

さらに、 reverse=True:

sorted_d = dict(sorted(d.items(), key=itemgetter(1), reverse=True))

17 を渡すことで降順に並べ替えることもできます。 Pretty print

Python の Print() 関数を使用して、場合によっては出力が醜いことがあります。このとき、pprint を使用して出力をより美しくすることができます。サンプルは次のとおりです:

from pprint import pprint
data = {
 "name": "john deo",
 "age": "22",
 "address": {"contry": "canada", "state": "an state of canada :)", "address": "street st.34 north 12"},
 "attr": {"verified": True, "emialaddress": True},
}
print(data)
pprint(data)

出力は次のとおりです:

{'name': 'john deo', 'age': '22', 'address': {'contry': 'canada', 'state': 'an state of canada :)', 'address': 'street st.34 north 12'}, 'attr': {'verified': True, 'emialaddress': True}}
{'address': {'address': 'street st.34 north 12',
'contry': 'canada',
'state': 'an state of canada :)'},
'age': '22',
'attr': {'emialaddress': True, 'verified': True},
'name': 'john deo'}

pprint 関数を使用すると、辞書の出力が読みやすくなることがわかりました。

以上がPython に関する 17 の役立つヒントを共有しましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。