क्या किसी शब्द को सूची में विभाजित करने के लिए अजगर में एक कार्य है? [डुप्लिकेट]


100

क्या किसी शब्द को एकल अक्षरों की सूची में विभाजित करने के लिए अजगर में एक कार्य है? उदाहरण के लिए:

s="Word to Split"

लेना

wordlist=['W','o','r','d','','t','o' ....]

बस इस दस्तावेज़ को देखें: docs.python.org/library/stdtypes.html

5
पुराना धागा, लेकिन यह ध्यान देने योग्य है: अधिकांश समय आपको ऐसा करने की आवश्यकता नहीं है। एक अजगर स्ट्रिंग के पात्रों को सीधे सूची के रूप में एक्सेस किया जा सकता है। s[2]'r' है, और s[:4]'Word' है और len(s)13. है। आप उन पर भी for char in s: print char
लिख सकते हैं

@domoarrigato लेकिन अलग-अलग व्यवहार के कारण और उत्परिवर्तन के लिए सूची ऐसा करने का कारण हो सकती है।
brainLoop

जवाबों:


226
>>> list("Word to Split")
['W', 'o', 'r', 'd', ' ', 't', 'o', ' ', 'S', 'p', 'l', 'i', 't']

6
किसी भी कारण से आप जानते हैं कि "वर्ड टू स्प्लिट" .split ('') एक ही काम क्यों नहीं करता है। यह नहीं है, लेकिन वास्तव में ऐसा लगता है जैसे यह होना चाहिए।
वाल्टर निसेन

2
@Walter Nissen: जब मुझे कोशिश होती है कि मुझे "ValueError: खाली विभाजक" मिले। खाली रेगेक्स बहुत अच्छी तरह से परिभाषित नहीं है।
ग्रेग हेविगेल

क्या split()पात्रों को प्राप्त करने के लिए कोई परिसीमन नहीं है ? split()एक दूसरा तर्क लेता maxsplits , लेकिन कोई साथ बराबर होती है list()। बेशक वहाँ काम कर रहे हैं ...
क्रिस_रंड्स 15'16

20

सबसे आसान तरीका शायद केवल उपयोग करना है list(), लेकिन कम से कम एक अन्य विकल्प भी है:

s = "Word to Split"
wordlist = list(s)               # option 1, 
wordlist = [ch for ch in s]      # option 2, list comprehension.

इन दोनों को आपको वह देना चाहिए जो आपको चाहिए:

['W','o','r','d',' ','t','o',' ','S','p','l','i','t']

जैसा कि कहा गया है, पहली संभावना आपके उदाहरण के लिए सबसे बेहतर है, लेकिन ऐसे मामले हैं जो अधिक जटिल सामान के लिए उत्तरार्द्ध को काफी आसान बना सकते हैं, जैसे कि यदि आप आइटम के लिए कुछ मनमाना फ़ंक्शन लागू करना चाहते हैं, जैसे:

[doSomethingWith(ch) for ch in s]

7

सूची फ़ंक्शन यह करेगा

>>> list('foo')
['f', 'o', 'o']

4

नियमों का दुरुपयोग, एक ही परिणाम: ('विभाजन करने के लिए शब्द' में x के लिए x)

वास्तव में एक पुनरावृत्त, एक सूची नहीं। लेकिन यह संभावना है कि आप वास्तव में परवाह नहीं करेंगे।


बेशक, 'Word to split'सीधे इस्तेमाल किया गया भी अपने स्वयं के पात्रों का एक चलने योग्य है, इसलिए जनरेटर की अभिव्यक्ति सिर्फ व्यर्थ लपेटना है।
अप्रैल को शैडो रेंजर

1
text = "just trying out"

word_list = []

for i in range(0, len(text)):
    word_list.append(text[i])
    i+=1

print(word_list)

['j', 'u', 's', 't', ' ', 't', 'r', 'y', 'i', 'n', 'g', ' ', 'o', 'u', 't']

0

def गिनती (): सूची = 'oixfjhibokxnjfklmhjpxesriktglanwekgvvnk'

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)))

0

सबसे आसान विकल्प केवल थूक () कमांड का उपयोग करना है। हालाँकि, यदि आप इसका उपयोग नहीं करना चाहते हैं या यह कुछ बाज़ार कारणों से काम नहीं करता है, तो आप हमेशा इस पद्धति का उपयोग कर सकते हैं।

word = 'foo'
splitWord = []

for letter in word:
    splitWord.append(letter)

print(splitWord) #prints ['f', 'o', 'o']
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.