Ancien fil, mais cela vaut la peine d'être mentionné: la plupart du temps, vous n'avez pas du tout besoin de le faire. Les caractères d'une chaîne python sont accessibles directement sous forme de liste, c'est-à-dire. s[2]est «r», et s[:4]est «Word» et len(s)vaut 13. Vous pouvez également les parcourir:for char in s: print char
domoarigato
@domoarrigato mais en raison du comportement différent de srting et de la liste de mutabilité peut être une raison de le faire.
brainLoop
Réponses:
227
>>> list("Word to Split")['W','o','r','d',' ','t','o',' ','S','p','l','i','t']
N'importe quelle raison vous savez pourquoi "Word to Split" .split ('') ne fait pas la même chose. Ce n'est pas le cas, mais il semble vraiment que cela devrait.
Walter Nissen
2
@Walter Nissen: J'obtiens "ValueError: empty separator" en essayant cela. Le regex vide n'est pas très bien défini.
Greg Hewgill
N'y a-t-il pas de délimiteur à utiliser split()pour obtenir les caractères? split()prend un deuxième argument maxsplits , mais il n'y a pas d'équivalent avec list(). Bien sûr, il y a des solutions de rechange ...
Chris_Rands
20
Le moyen le plus simple est probablement de l'utiliser list(), mais il existe également au moins une autre option:
s ="Word to Split"
wordlist = list(s)# option 1,
wordlist =[ch for ch in s]# option 2, list comprehension.
Ils devraient tous les deux vous donner ce dont vous avez besoin:
Comme indiqué, le premier est probablement le plus préférable pour votre exemple, mais il existe des cas d'utilisation qui peuvent rendre ce dernier assez pratique pour des choses plus complexes, par exemple si vous souhaitez appliquer une fonction arbitraire aux éléments, comme avec:
Bien sûr, 'Word to split'utilisé directement est également un itérable de ses propres caractères, de sorte que l'expression du générateur est juste un wrapping inutile.
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]= tempprint("final count of arrival of each letter is : \n", dict(map(lambda x:(x, word_list.count(x)), word_list)))
L'option la plus simple consiste simplement à utiliser la commande spit (). Cependant, si vous ne voulez pas l'utiliser ou que cela ne fonctionne pas pour une raison de bazar, vous pouvez toujours utiliser cette méthode.
word ='foo'
splitWord =[]for letter in word:
splitWord.append(letter)print(splitWord)#prints ['f', 'o', 'o']
s[2]
est «r», ets[:4]
est «Word» etlen(s)
vaut 13. Vous pouvez également les parcourir:for char in s: print char
Réponses:
la source
split()
pour obtenir les caractères?split()
prend un deuxième argument maxsplits , mais il n'y a pas d'équivalent aveclist()
. Bien sûr, il y a des solutions de rechange ...Le moyen le plus simple est probablement de l'utiliser
list()
, mais il existe également au moins une autre option:Ils devraient tous les deux vous donner ce dont vous avez besoin:
Comme indiqué, le premier est probablement le plus préférable pour votre exemple, mais il existe des cas d'utilisation qui peuvent rendre ce dernier assez pratique pour des choses plus complexes, par exemple si vous souhaitez appliquer une fonction arbitraire aux éléments, comme avec:
la source
La fonction de liste le fera
la source
Abus des règles, même résultat: (x pour x dans 'Word to split')
En fait, un itérateur, pas une liste. Mais il est probable que vous ne vous en souciez pas vraiment.
la source
'Word to split'
utilisé directement est également un itérable de ses propres caractères, de sorte que l'expression du générateur est juste un wrapping inutile.la source
def count (): list = 'oixfjhibokxnjfklmhjpxesriktglanwekgfvnk'
la source
L'option la plus simple consiste simplement à utiliser la commande spit (). Cependant, si vous ne voulez pas l'utiliser ou que cela ne fonctionne pas pour une raison de bazar, vous pouvez toujours utiliser cette méthode.
la source