Старая ветка, но стоит упомянуть: в большинстве случаев вам вообще не нужно этого делать. К символам строки Python можно обращаться напрямую как к списку, т.е. s[2]это 'r', и s[:4]это 'Word', и len(s)это 13. Вы также можете перебирать их:for char in s: print char
domoarigato
@domoarrigato, но из-за разного поведения srting и list для изменчивости может быть причиной для этого.
brainLoop
def show_letters (word): for ch in word: print (ch) show_letters ("Hello")
biddut
Ответы:
227
>>> list("Word to Split")['W','o','r','d',' ','t','o',' ','S','p','l','i','t']
По любой причине, которую вы знаете, почему «Word to Split» .split ('') не делает то же самое. Это не так, но кажется, что должно.
Уолтер Ниссен
2
@Walter Nissen: Я получаю "ValueError: пустой разделитель", пытаясь это сделать. Пустое регулярное выражение не очень хорошо определено.
Грег Хьюгилл
Нет ли разделителя для использования split()символов? split()принимает второй аргумент maxsplits , но для него нет эквивалента list(). Конечно, есть обходные пути ...
Chris_Rands
20
Самый простой способ - это просто использовать list(), но есть еще как минимум один вариант:
s ="Word to Split"
wordlist = list(s)# option 1,
wordlist =[ch for ch in s]# option 2, list comprehension.
Как уже говорилось, первый вариант, вероятно, наиболее предпочтителен для вашего примера, но есть варианты использования, которые могут сделать последний весьма удобным для более сложных вещей, например, если вы хотите применить к элементам некоторую произвольную функцию, например:
Конечно, 'Word to split'напрямую используется итерация собственных символов, поэтому выражение генератора - это просто бессмысленная упаковка.
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)))
Самый простой вариант - просто использовать команду spit (). Однако, если вы не хотите использовать его или он не работает по какой-то базарной причине, вы всегда можете использовать этот метод.
word ='foo'
splitWord =[]for letter in word:
splitWord.append(letter)print(splitWord)#prints ['f', 'o', 'o']
s[2]
это 'r', иs[:4]
это 'Word', иlen(s)
это 13. Вы также можете перебирать их:for char in s: print char
Ответы:
источник
split()
символов?split()
принимает второй аргумент maxsplits , но для него нет эквивалентаlist()
. Конечно, есть обходные пути ...Самый простой способ - это просто использовать
list()
, но есть еще как минимум один вариант:Они оба должны дать вам то, что вам нужно:
Как уже говорилось, первый вариант, вероятно, наиболее предпочтителен для вашего примера, но есть варианты использования, которые могут сделать последний весьма удобным для более сложных вещей, например, если вы хотите применить к элементам некоторую произвольную функцию, например:
источник
Функция списка сделает это
источник
Нарушение правил, результат тот же: (x вместо x в 'Word to split')
Собственно итератор, а не список. Но, скорее всего, тебе все равно.
источник
'Word to split'
напрямую используется итерация собственных символов, поэтому выражение генератора - это просто бессмысленная упаковка.источник
def count (): list = 'oixfjhibokxnjfklmhjpxesriktglanwekgfvnk'
источник
Самый простой вариант - просто использовать команду spit (). Однако, если вы не хотите использовать его или он не работает по какой-то базарной причине, вы всегда можете использовать этот метод.
источник