1. 組み込み関数
以下にいくつか簡単に紹介します:
1.abs() 絶対値を求める
2.all() iterable のすべての要素が true の場合 (またはiterable は空です)、<code class="docutils literal"><span class="pre">True</span>
3.any() 如果 iterable 的任何元素为真,则返回 <code class="docutils literal"><span class="pre">True</span>。如果iterable为空,则返回 <span class="pre">False</span>
4.callable() 如果 object 参数出现可调,则返回 <span class="pre">True</span>
,否则返回 <span class="pre">False</span>
5.divmod() 以两个(非复数)数字作为参数,并在使用整数除法时返回由商和余数组成的一对数字。对于混合操作数类型,二进制算术运算符的规则适用。对于整数,结果与 <span class="pre">(a<span class="pre">//<span class="pre">b,<span class="pre">a<span class="pre">%<span class="pre">b)</span></span></span></span></span></span>
相 同。对于浮点数,结果为 <span class="pre">(q,<span class="pre">a<span class="pre">%<span class="pre">b)</span></span></span></span>
,其中q 通常为 <span class="pre">math.floor(a<span class="pre">/<span class="pre">b)</span></span></span>
True
3.any() iterable のいずれかの要素が true の場合、
。 iterable が空の場合は、<span class="pre">False</span>
4.callable() を返します。 object
パラメーターが調整可能であると思われる場合は、<p>True<span class="pre"></span></p>
、それ以外の場合は False
を返します5.divmod() 2 つかかります(非複素数) 数値を引数として指定し、整数除算を使用する場合は商と余りで構成される数値のペアを返します。混合オペランド型の場合は、二項算術演算子の規則が適用されます。整数の場合、結果は
<p>(a<span class="pre">//</span>b,</p>a<div class="cnblogs_code">%</div>b)<p><span style="font-size: 14px"></span></p>
<p></p>
と同じになります。浮動小数点数の場合、結果は <p>(q,<em>a</em>%<em>b)</em></p>
<p></p>
になります。ここで、q
は通常 "> <p>math.floor(a</p>/<p>b)</p>
<p></p>
ですが、16.enumerate() 未満にすることもできます。パラメータは反復可能なオブジェクトである必要があります。関数操作の結果はイテレータであり、出力要素は次のとおりです 対応するインデックス値
7.eval() 文字列を抽出して実行します8.frozenset() 不変コレクション、frozenset() で定義されたコレクションは追加または削除できませんelements 9.globals () 現在のグローバル シンボル テーブルを表す辞書を返します。これは常に現在のモジュールの辞書です (関数またはメソッドの内部では、これは呼び出し元のモジュールではなく、定義されているモジュールです) 10.round() 引数を丸めます 11.sorted() 元のリストを変更せずに並べ替えます
l=[1,2,4,9,-1]print(sorted(l)) #从小到大print(sorted(l,reverse=True)) #从大到小12.zip() ジッパー関数
イテレータを作成し、各イテレータから要素を集約します。
タプルの反復子を返します。
i番目のタプルには、各引数シーケンスまたは反復からの
i番目の要素が含まれます。反復子は、反復可能な最短の入力がなくなると停止します。単一の反復可能な引数を受け取ると、1 タプルの反復子を返します。引数がない場合、空の反復子を返します
13.max()
反復可能な項目の最大の項目、または 2 つ以上の引数の最大の項目を返します。
位置引数が指定される場合、それは反復可能である必要があります。反復内で最大の項目を返します。 2 つ以上の位置引数が指定された場合、最大の位置引数が返されます。
l=[1,2,3,4] m=map(lambda x:x**2,l)print(list(m)) ----->[1, 4, 9, 16]🎜🎜🎜15.reduce() Merge🎜🎜🎜
from functools import reduce res=0for i in range(100): res+=iprint(res)🎜🎜16.filter() Filter ブール値がTrueの要素を保持🎜🎜
names=['alex_sb','yuanhao_sb','wupeiqi_sb','egon']print(list(filter(lambda name:name.endswith('_sb'),names)))--->['alex_sb', 'yuanhao_sb', 'wupeiqi_sb']🎜🎜 組み込み関数の詳しい紹介は以下を参照してください。 : 🎜🎜2. 匿名関数 (ラムダ式)🎜🎜
def func(x):return x**2print(func(2))lambda x:x**2 #上边的函数就可以直接写成这种形式🎜🎜ラムダ関数は独自の戻り値を持っています🎜🎜匿名関数は一部の非常に単純な関数のみを置き換えることができ、主に他の関数と組み合わせて使用されます🎜🎜という状況もあります一部の関数は定義後に一度しか使用されないため、削除しないとメモリ容量を消費し、削除が非常に面倒になります🎜🎜3. 🎜🎜関数を呼び出す過程で、関数自体が直接または間接的に使用されます🎜🎜 再帰の効率は非常に低く、次の再帰に入るときに現在の状態を保持する必要がありません。Python には他の言語とは異なります。末尾再帰ですが、Python には制限があり、ユーザーが無限に再帰することはできません🎜🎜 再帰の特徴: 🎜🎜1. 明確な終了条件が必要です🎜🎜2. より深いレベルの再帰に入るたびに、問題のサイズは次のようになります。前回の再帰と比べて減少しました🎜🎜3. 再帰効率は高くなく、再帰レベルが多すぎるとスタックオーバーフローが発生します🎜🎜 例: 🎜🎜
# 1 文件内容如下,标题为:姓名,性别,年纪,薪资# # egon male 18 3000# alex male 38 30000# wupeiqi female 28 20000# yuanhao female 28 10000# # 要求:# 从文件中取出每一条记录放入列表中,# 列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式# # 2 根据1得到的列表,取出薪资最高的人的信息# 3 根据1到的列表,取出最年轻的人的信息# 4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式# 5 根据1得到的列表,过滤掉名字以a开头的人的信息# 6 使用递归打印斐波那契数列(前两个数的和得到第三个数)# 0 1 1 2 3 4 7...with open('b.txt',encoding='utf-8')as f: l=[{'name': line.split()[0], 'sex': line.split()[1], 'age': line.split()[2], 'salary': line.split()[3]} \for line in f]#2.print(max(l,key=lambda i:i['salary']))#3.print(min(l,key=lambda i:i['age']))#4.m=map(lambda x:x['name'].capitalize(),l)print(list(m))#5.print(list(filter(lambda x:not(x['name'].startswith('a')),l)))#6.def f(n):if n==0:return 0elif n==1:return 1else:if n==1000:return f(1000)else:return f(n-2)+f(n-1)for i in range(150):print(f(i))🎜
以上がPythonの基礎における組み込み関数と再帰の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。