Python'da bir kelimeyi tek harflerden oluşan bir listeye bölme işlevi var mı? Örneğin:
s="Word to Split"
almak
wordlist=['W','o','r','d','','t','o' ....]
Python'da bir kelimeyi tek harflerden oluşan bir listeye bölme işlevi var mı? Örneğin:
s="Word to Split"
almak
wordlist=['W','o','r','d','','t','o' ....]
s[2]
'r' ve s[:4]
'Kelime' ve len(s)
13'tür. Bunların üzerinde de yineleme yapabilirsiniz:for char in s: print char
Yanıtlar:
>>> list("Word to Split")
['W', 'o', 'r', 'd', ' ', 't', 'o', ' ', 'S', 'p', 'l', 'i', 't']
split()
Karakterleri almak için kullanılacak sınırlayıcı yok mu? split()
ikinci bir argüman alır maxsplits , ancak eşdeğeri yoktur list()
. Elbette
En kolay yol muhtemelen sadece kullanmaktır list()
, ancak en az bir seçenek daha vardır:
s = "Word to Split"
wordlist = list(s) # option 1,
wordlist = [ch for ch in s] # option 2, list comprehension.
İkisi de size ihtiyacınız olanı vermeli :
['W','o','r','d',' ','t','o',' ','S','p','l','i','t']
Belirtildiği gibi, birincisi muhtemelen örneğiniz için en çok tercih edilenidir, ancak ikincisini daha karmaşık şeyler için oldukça kullanışlı hale getirebilecek kullanım durumları vardır, örneğin öğelere rastgele bazı işlevler uygulamak istiyorsanız, örneğin:
[doSomethingWith(ch) for ch in s]
Kuralların kötüye kullanılması, aynı sonuç: ('Bölünecek Word'de' x için x)
Aslında bir yineleyici, bir liste değil. Ama muhtemelen gerçekten umursamayacaksın.
'Word to split'
doğrudan kullanılan kendi karakterlerinin bir yinelenebiliridir, bu nedenle oluşturucu ifadesi sadece anlamsız bir sarmalamadır.
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)))
En kolay seçenek sadece spit () komutunu kullanmaktır. Ancak kullanmak istemiyorsanız ya da bazı çarşı sebeplerinden dolayı çalışmıyorsa bu yöntemi her zaman kullanabilirsiniz.
word = 'foo'
splitWord = []
for letter in word:
splitWord.append(letter)
print(splitWord) #prints ['f', 'o', 'o']