en rodajas
Tenga una lista o toman elementos Tuole parte son muy comunes, por ejemplo, para obtener una lista de funcionamiento de la siguiente manera:
>>> L = [ 'Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
Tomar los primeros N elementos
>>> r = [] >>> n = 3 >>> para i en rango ( >>> r.append (L [i]) >>> r [ ' Michael ' , ' Sarah ' , ' Tracy ' ]
Tome el elemento del [Inicio: Fin: desmontar unos pocos]
: >>> L [10 ] [0, 1, 2 ,. 3 ,. 4 ,. 5 ,. 6 ,. 7 ,. 8 ,. 9. ] Después del número 10: >>> L [-10 :] [ 90, 91 es decir, 92, 93, 94, 95, 96, 97, 98, 99 ] en los 11 primeros - 20 dígitos: >>> L [10:20 ] [ 10 ,. 11, 12 es decir, 13 es decir, 14, 15, 16 ,. 17, 18 es ,. 19 ] antes del número 10, cada uno de los dos echar un: L [>>>: 10: 2 ] [0, 2. 4 ,. 6. 8 ,, ] todos los números, cada uno teniendo un 5: . >>> L [:: 5 ] [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95 ] única o incluso nada que escribir, escribir [:] se copiará como una lista: >>> L [:] [0, . 1, 2 ,. 3, ..., 99]
iteración
>>> d = { ' un ' : 1, ' b ' : 2, ' c ' : 3 } >>> para llave en d: ... de impresión (tecla)
Por defecto, la iteración dict es clave. Si desea iteración de valor, que puede ser utilizado for value in d.values()
, si quieres clave iteración y valor, se puede utilizar for k, v in d.items()
.
Por lo tanto, la forma de juzgar un objeto iterable es él? El método de colecciones de módulo de clase de determinación de Iterable: >>> de colecciones de importación Iterable >>> la isinstance ( ' ABC ' , Iterable) # STR si iteración Verdadero >>> la isinstance ([l, 2,3], Iterable) # si la lista puede ser iterativo verdadera >>> isinstance (123, Iterable) # número entero si iteración Falso
Si desea listar el subíndice lograr un ciclo similar de Java como la forma de hacer? función enumerate Python puede ser construido en un índice de la lista - elementos para que ambos estarán en el de índice de iteración de bucle y el propio elemento: >>> para I, valor en enumerate ([ ' A ' , ' B ' , ' C ' ]): ... Imprimir (I, valor) ... 0 A 1. B 2 C
Para generar una lista [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
que puede utilizar list(range(1, 11))
:
>>> lista (rango (1, 11 ))
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Si desea generar [1x1, 2x2, 3x3, ..., 10x10]
cómo hacerlo? El primer método de bucle:
>>> L = [] >>> para x en gama (1, 11 ): ... L.append (x * x) [x * x para x en rango (1,11 )] [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 两层
>>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100]
>>> [m + n for m in 'ABC' for n in 'XYZ'] ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
Acerca de y si
for
La parte delantera if ... else
es la expresión
Mientras que for
este último if
es un filtro, no con else
.
Puede isinstance(x, str)
isinstance para determinar esta variable no es una cadena
generador
Calculado mientras mecanismo de circulación conocido como un generador de generador
Para crear un generador, hay muchas maneras.
El primer método es muy simple, siempre y cuando una lista de la fórmula [] en (), crea un Generador: >>> L = [X * X para X en la gama (10 )] >>> L [0 , . 1 ,. 4 ,. 9, 16, 25, 36, 49, 64, 81 ] >>> G = (X * X para X en la gama (10 )) >>> G <Object Generador <genexpr> AT 0x1022ef630>
pero Acerca de () necesita al lado! ! ! ! próxima
vez hay más elementos, lanzaStopIteration
un error.
Se pervirtió!>>> g = (x * x for x in range(10)) >>> for n in g: ... print(n)
def fib (max): n, a, b = 0, 0, 1 , mientras que n < max: rendimiento b a, b = b, a + b n = n + 1 retorno ' hecho '