Hilo antiguo, pero vale la pena mencionarlo: la mayoría de las veces no es necesario hacer esto en absoluto. Se puede acceder directamente a los caracteres de una cadena de Python como una lista, es decir. s[2]es 'r', y s[:4]es 'Word' y len(s)es 13. También puede iterar sobre ellos:for char in s: print char
domoarigato
@domoarrigato, pero debido al diferente comportamiento de srting y lista de mutabilidad puede ser una razón para hacer esto.
brainLoop
Respuestas:
226
>>> list("Word to Split")['W','o','r','d',' ','t','o',' ','S','p','l','i','t']
Cualquier motivo que sepa de por qué "Word to Split" .split ('') no hace lo mismo. No es así, pero realmente parece que debería.
Walter Nissen
2
@Walter Nissen: obtengo "ValueError: separador vacío" cuando intento eso. La expresión regular vacía no está muy bien definida.
Greg Hewgill
¿No hay un delimitador para usar split()para obtener los caracteres? split()toma un segundo argumento maxsplits , pero no hay equivalente con list(). Por supuesto que hay soluciones ...
Chris_Rands
20
Probablemente, la forma más fácil sea usarla list(), pero también hay al menos otra opción:
s ="Word to Split"
wordlist = list(s)# option 1,
wordlist =[ch for ch in s]# option 2, list comprehension.
Como se indicó, el primero es probablemente el más preferible para su ejemplo, pero hay casos de uso que pueden hacer que este último sea bastante útil para cosas más complejas, como si desea aplicar alguna función arbitraria a los elementos, como con:
Por supuesto, 'Word to split'usado directamente también es iterable de sus propios caracteres, por lo que la expresión del generador es simplemente un envoltorio inútil.
ShadowRanger
1
text ="just trying out"
word_list =[]for i in range(0, len(text)):
word_list.append(text[i])
i+=1print(word_list)['j','u','s','t',' ','t','r','y','i','n','g',' ','o','u','t']
def count (): list = 'oixfjhibokxnjfklmhjpxesriktglanwekgfvnk'
word_list =[]# dict = {}for i in range(len(list)):
word_list.append(list[i])# word_list1 = sorted(word_list)for i in range(len(word_list)-1,0,-1):for j in range(i):if word_list[j]> word_list[j +1]:
temp = word_list[j]
word_list[j]= word_list[j +1]
word_list[j +1]= temp
print("final count of arrival of each letter is : \n", dict(map(lambda x:(x, word_list.count(x)), word_list)))
La opción más fácil es usar el comando spit (). Sin embargo, si no desea usarlo o la dosis no funciona por alguna razón de bazar, siempre puede usar este método.
word ='foo'
splitWord =[]for letter in word:
splitWord.append(letter)print(splitWord)#prints ['f', 'o', 'o']
s[2]
es 'r', ys[:4]
es 'Word' ylen(s)
es 13. También puede iterar sobre ellos:for char in s: print char
Respuestas:
fuente
split()
para obtener los caracteres?split()
toma un segundo argumento maxsplits , pero no hay equivalente conlist()
. Por supuesto que hay soluciones ...Probablemente, la forma más fácil sea usarla
list()
, pero también hay al menos otra opción:Deben tanto darle lo que necesita:
Como se indicó, el primero es probablemente el más preferible para su ejemplo, pero hay casos de uso que pueden hacer que este último sea bastante útil para cosas más complejas, como si desea aplicar alguna función arbitraria a los elementos, como con:
fuente
La función de lista hará esto
fuente
Abuso de las reglas, mismo resultado: (x para x en 'Palabra para dividir')
En realidad, un iterador, no una lista. Pero es probable que realmente no le importe.
fuente
'Word to split'
usado directamente también es iterable de sus propios caracteres, por lo que la expresión del generador es simplemente un envoltorio inútil.fuente
def count (): list = 'oixfjhibokxnjfklmhjpxesriktglanwekgfvnk'
fuente
La opción más fácil es usar el comando spit (). Sin embargo, si no desea usarlo o la dosis no funciona por alguna razón de bazar, siempre puede usar este método.
fuente