「30 秒の Python」、すべてのスキルとメソッドをわずか 30 秒で取得でき、ビジネス時間を使ってそれらを蓄積することができます。以下を簡単に見てみましょう。
List、
Math、
Object、
String、
Utility、以下は整理された思考マップです。 。
1. リスト: all_equal関数実装: リスト内のすべての要素が同じかどうかを確認します。
解釈:
[1:] と
[:-1] を使用して、指定されたリストのすべての要素を比較します。
def all_equal(lst): return lst[1:] == lst[:-1]
all_equal([1, 2, 3, 4, 5, 6]) # False all_equal([1, 1, 1, 1]) # True
2. リスト: all_unique関数実装: リスト内のすべての値が一意の場合は True を返し、そうでない場合は False
解釈: set
set() を使用して、指定されたリストの重複を削除し、その長さを元のリストと比較します。
def all_unique(lst): return len(lst) == len(set(lst))
x = [1,2,3,4,5,6] y = [1,2,2,3,4,5] all_unique(x) # True all_unique(y) # False
3. リスト: bifurcate関数の実装: リスト値をグループ化します。
filter の要素が True の場合、対応する要素は最初のグループに属し、それ以外の場合は 2 番目のグループに属します。
解釈: リスト内包表記を使用し、フィルター要素に基づいて各グループに enumerate() を実行します。
def bifurcate(lst, filter): return [ [x for i,x in enumerate(lst) if filter[i] == True], [x for i,x in enumerate(lst) if filter[i] == False] ]
bifurcate(['beep', 'boop', 'foo', 'bar'], [True, True, False, True]) # [ ['beep', 'boop', 'bar'], ['foo'] ]
4. リスト: 差分関数実装: 2 つの
iterables の差を返します。
解釈:
b のセットを作成し、 a のリスト内包表記を使用して
_b にない要素を保持します。
def difference(a, b): _b = set(b) return [item for item in a if item not in _b]
difference([1, 2, 3], [1, 2, 4]) # [3]
5. リスト: flatten関数実装: 1 回限りの統合リスト。
解釈: ネストされたリストを使用して、サブリストの各値を抽出します。
def flatten(lst): return [x for y in lst for x in y]
flatten([[1,2,3,4],[5,6,7,8]]) # [1, 2, 3, 4, 5, 6, 7, 8]
6. 数学: digitalize関数の実装: 数値を分解し、1 桁の数字に変換します。
解釈: n を特徴付けた後、
map() 関数を
int と組み合わせて使用し、変換を完了します。
def digitize(n): return list(map(int, str(n)))
digitize(123) # [1, 2, 3]
7. リスト: shuffle関数実装: リスト要素の順序をランダムにシャッフルします。
解釈:
Fisher-Yates アルゴリズムを使用して、リスト要素を並べ替えます。
from copy import deepcopy from random import randint def shuffle(lst): temp_lst = deepcopy(lst) m = len(temp_lst) while (m): m -= 1 i = randint(0, m) temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m] return temp_lst
foo = [1,2,3] shuffle(foo) # [2,3,1] , foo = [1,2,3]
8. 数学:clamp_number関数の実装:数値
num を a と の境界値にクランプします。 b 指定された範囲内にあること。
解釈:
num が範囲内にある場合は
num を返し、それ以外の場合は範囲内で最も近い数値を返します。
def clamp_number(num,a,b): return max(min(num, max(a,b)),min(a,b))
clamp_number(2, 3, 5) # 3 clamp_number(1, -1, -5) # -1
9. 文字列: byte_size関数の実装: 文字列内のバイト数を返します。
解釈:
string.encode('utf-8')を使用します指定された文字列をデコードし、長さを返します。
def byte_size(string): return len(string.encode('utf-8'))
byte_size('?') # 4 byte_size('Hello World') # 11
10. 数学: gcd関数の実装: いくつかの数値の最大公約数を計算します。
解釈:
reduce() と
math.gcd を使用して、指定されたリストを実装します。
from functools import reduce import math def gcd(numbers): return reduce(math.gcd, numbers)
gcd([8,36,28]) # 4
以上が教える: 30 秒ごとに Python のトリックを学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。