2012-02-26 8 views
5
a = "Stack" 
aList = list(a) 

Esto me da una serie como esta ['S','t',a','c','k']¿cómo lista (cadena) divide la cadena en una matriz de caracteres en python?

Quiero saber cómo funciona esta función list(string)!

+3

Estoy votando esto para contrarrestar el voto negativo no comentado (una respuesta no productiva). Como parece que es bastante nuevo aquí, permítame sugerirle que lea las [Preguntas frecuentes] (http://stackoverflow.com/faq), si aún no lo hizo, y explore varias preguntas, señalando el formato y el contenido comunes. convenciones. Los principiantes son bienvenidos aquí, así que ¡sigue haciendo preguntas! – kmote

+0

Python no tiene matrices. ¿Que estas preguntando? –

Respuesta

7

Una cadena es un tipo iterable. Por ejemplo, si usted hace esto:

for c in 'string': 
    print c 

Se obtiene

s 
t 
r 
i 
n 
g 

Así que pasar una cadena a list sólo itera a través de los caracteres en la cadena, y coloca cada uno en la lista.

4

cuerdas es iterable en Python porque se puede hacer

>>> for ch in "abc": 
...   print ch 
... 
a 
b 
c 
>>> 

y si se echa un vistazo a list clase construtor usando help("list") en su intérprete de python

class list(object) 
| list() -> new empty list 
| list(iterable) -> new list initialized from iterable's items 

Así list("hello"), devuelve una nueva lista inicializado

>>> x = list("hello") 
>>> type(x) 
<type 'list'> 
>>> 
0

Esto funciona porque str implementa __iter__, que permite iter(obj) para ser llamado en el objeto. Para str, la implementación devuelve carácter por carácter.

+0

gracias a todos! Quería saber exactamente cómo funcionaba la función list(). ¡Ustedes me dieron una buena idea al respecto! – Jagadheshwar

0

La mayor parte del trabajo se está realizando realmente con la cuerda. En realidad está usando el constructor del tipo list. En Python, generalmente no estamos tan preocupados con lo que son las cosas, sino más bien con lo que pueden hacer.

Lo que puede hacer una cadena es darle (por ejemplo, para utilizar un bucle for) sus caracteres (en realidad, subcadenas de longitud-1; no hay un tipo de carácter separado) de a uno por vez. El constructor list espera cualquier objeto que pueda hacer esto, y construye una lista que contiene los elementos así provistos.

Cuestiones relacionadas