day13の概要

イテレータ

イテレータ関数は単なる呼び出しではありません

Pythonオブジェクト内のすべて(データ型)

反復可能オブジェクト:データ型からなる.__反復可能オブジェクトと呼ばれるiter__方法

数値型に加えて、すべてのデータ型はイテレート可能オブジェクトです

イテレータオブジェクト:.__ iter__と.__ next__メソッドを含むオブジェクトは、イテレータオブジェクトであります

インデックスの値に依存しない手段を提供すること:なぜオブジェクトをイテレータ必要があります

循環原理のために(forループを本質的にwhileループであるが、特定の制御可能なwhileループです)

 dic_iter = dic.__iter__()
# while True:
#     try:
#         print(dic_iter.__next__())
#     except StopIteration:
#         break

反復可能オブジェクトは.__ iter__にイテレータオブジェクトを使用します

イテレータ.__ iter__はまだイテレータを使用して

反復可能オブジェクトは必ずしもイテレータオブジェクトは、オブジェクトがイテレータでなければならない反復可能

式のトリプレット

# if x > y:
#     print(x)
# else:
#     print(y)

表現のトリプレット - 「3つのヘッド式

print(x) if x > y else print(y) #  --> 仅作了解

条件が真の条件が他の条件は、ここに行く満たされていないされている場合は、ここに行きます

リスト内包

lt = [i**2 for i in range(10)]

インポートのIterable#を入力してから繰り返しオブジェクトタイプを導出

プリント(でisinstance(範囲(10)、反復処理可能))#は、データ型かどうかを判断します

式の辞書

 dic = {i:i**2 for i in range(10)}
 
 zip()
# res = zip([1,2,3],[4,2,3,4,2,3,4,2,3],'abcadsfasdfasdf')  # res是一个迭代器,__next__返回元组
# print(res.__next__())  # type:tuple
# print(res.__next__())  # type:tuple
# print(res.__next__())  # type:tuple
# # print(res.__next__())  # type:tuple
 
 
 lt1 = ['a', 'b', 'c']
lt2 = [1, 2, 3]

dic = {k: v ** 2 for k, v in zip(lt1, lt2)}
print(dic)


lt = list('abc')
print(lt)

ジェネレータ式

 generator 本质是一个迭代器 ---> 生成器: 本质就是迭代器,生成器就是一个自定义的迭代器


g = (i for i in range(10000000))
print(g)
# for i in g:
#     print(i)

lt = [i for i in range(10000000)]
print(lt)

ジェネレータ式:古い編として、築くためにそれを使用し、メモリ空間を節約
リスト内包:卵のバスケットなどを、そのメモリ領域を占有

ジェネレータ

# 生成器:含有yield关键字的函数叫做生成器
def ge():
    yield 3  # 一个yield相当于一个next; 暂停函数
    yield 4


# print(ge())  # ge()得到一个生成器 --> 生成器本质是迭代器
g = ge()  # 得到一个生成器

収量特性

  1. ポーズ機能
  2. 次の値により、

特性を返します

  1. 終了関数
  2. 関数を呼び出して値を取得します。

レンジメソッドを書きます

  1. ジェネレータ
  2. VARARG

私たちは、行き当たりばったり、乾いた手が不足しています

再帰

# 传递 ; 回归


# 递归: 函数a内部直接调用函数a本身
# import sys
# sys.setrecursionlimit(10)
# print(sys.getrecursionlimit())
#
# def a():
#     x = 1
#     print(x)
#     a()
#
#
# a()

各再帰的には、ありません?機能を終了していないだろう、とメモリが爆破されている場合、それぞれの再帰は1000年ので、ほとんどの再帰的、開放されたメモリ空間を開きます

本物の再帰は、終了条件を持っている必要があります

再帰:

  1. 内部には、機能を自分で呼び出します
  2. 終了条件が存在する必要があります
  3. 再帰は、法律を持っている必要があります

おすすめ

転載: www.cnblogs.com/zhm-cyt/p/11578449.html