ホームページ >バックエンド開発 >Python チュートリアル >Python の一般的なメソッドとテクニックの概要
この記事では、主に Python の一般的なメソッドとテクニックを紹介します。この記事では、文字列を逆引きする 3 つの方法、辞書を走査する 4 つの方法、リストを走査する 3 つの方法、辞書の並べ替え方法などについて説明します。必要な友人はそれらを参照できます
1. 文字列を反転する 3 つの方法1. C++ でメソッドをシミュレートし、それを実現するために空の文字列を定義します
次に、空の文字列を設定します。パラメータを後ろから前に、文字列の追加を使用して新しい文字列にマージします
def reverse(text) : str = '' index = len(text) - 1 while index >= 0 : str += text[index] index -= 1 return str
1.2. スライス方法を使用します
これは、スライスが負の値を取ることができる機能です。ステップ サイズを -1 にすると、逆ソートが実現します。
def reverse_1(text) : return text[::-1]
リストのリバースメソッドを使用し、最初にテキストをリストに変換し、次にリバースメソッドでそれを反転し、結合を通じて文字列に接続します。
def reverse_2(text) : temp = list(text) temp.reverse() return ''.join(temp)2.reduceを使用する
匿名関数とreduce()を使用する
def reverse_3(text) : return reduce(lambda x, y : y + x, text) print reverse_3("Hello")3.辞書を走査する4つの方法
dict={"a":"apple","b":"banana","o":"orange"} print "##########dict######################" for i in dict: print "dict[%s]=" % i,dict[i] print "###########items#####################" for (k,v) in dict.items(): print "dict[%s]=" % k,v print "###########iteritems#################" for k,v in dict.iteritems(): print "dict[%s]=" % k,v print "###########iterkeys,itervalues#######" for k,v in zip(dict.iterkeys(),dict.itervalues()): print "dict[%s]=" % k,v4. 5. 辞書のソート方法
辞書は、value の値に応じて大きい順にソートされます (デフォルトは小さい順にソートされます)。 for key in lst :
print key
for i in range(len(lst)) :
print lst[i]
for index, key in enumerate(lst) :
print key //index是list的索引
以下のコードを分解してみましょう
次に、sorted メソッドを使用して key パラメーターを渡し、ソートが値、つまり最初の要素 d[1 の値に基づくことを指定します。 reverse = True は、反転する必要があることを意味します。反転すると、デフォルトは大から小になります。
キーで辞書をソートします: dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict
//输出的结果:
[('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]
6. サブクラスと親クラス
サブクラス
Constructor
親クラスの初期化コンストラクターを呼び出します
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0} dict= sorted(dic.iteritems(), key=lambda d:d[0]) # d[0]表示字典的键 print dict #sorted中第三个可选参数为reverse, True表示从大到小排序 #默认reverse = False
サブクラスは、同じ名前の親クラスの関数を呼び出しますclass A(object) :
def init(self) :
print "testA
class B(A) :
def init(self) :
A.init(self)
7 . パラメータを渡すより柔軟な方法
super().fuleifunction()
変数の前にアスタリスク (*) を追加します。呼び出し時のパラメータは tuple()
オブジェクト
func2(a=1, b=2, c=3) #默认参数 func3(*args) #接受任意数量的参数, 以tuple的方式传入 func4(**kargs) #把参数以键值对字典的形式传入
を持つ仮パラメータ (arg=) の後になければなりません 3.タプルパラメータ (*args) の後にある必要があります。 関数が呼び出されるとき、パラメータの受け渡しプロセスは次のとおりです。
1. パラメータを指定せずに実パラメータを仮パラメータに代入します。
2.指定されたパラメータ名 (arg=v) を対応する仮パラメータに追加します3. 指定されたパラメータを持たない追加の実パラメータをタプルにパックし、それをタプル パラメータ (*args) に渡します
4. 追加の実パラメータを指定されたパラメータ名でパックします。辞書パラメータに渡します(** kargs)
式
ラムダ式は匿名関数とみなすことができます
ラムダ式の文法形式:
ラムダパラメータリスト: 式 #ありませんパラメーターリストを括弧で囲み、戻り値の前にリターンキーがありません Words と関数名がありません
def calcSum(*args): sum = 0 for i in args: sum += i print sum #调用: calcSum(1,2,3) calcSum(123,456) calcSum() #输出: 6 579 0 ################################# def printAll(**kargs): for k in kargs: print k, ':', kargs[k] printAll(a=1, b=2, c=3) printAll(x=4, y=5) #输出: a : 1 c : 3 b : 2 y : 5 x : 4Anaization
: fn(2) が呼び出された後、それは a = lambda y: 2 + y と同等です。次に a(3) が呼び出されるとき。これは print lambda y: 2 + 3 と同等です
以上がPython の一般的なメソッドとテクニックの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。