আপনি কীভাবে একটি স্ট্রিংকে তালিকায় রূপান্তর করবেন?
বলুন স্ট্রিংয়ের মতো text = "a,b,c"
। রূপান্তর পরে, text == ['a', 'b', 'c']
এবং আশা করি text[0] == 'a'
, text[1] == 'b'
?
আপনি কীভাবে একটি স্ট্রিংকে তালিকায় রূপান্তর করবেন?
বলুন স্ট্রিংয়ের মতো text = "a,b,c"
। রূপান্তর পরে, text == ['a', 'b', 'c']
এবং আশা করি text[0] == 'a'
, text[1] == 'b'
?
উত্তর:
এটার মত:
>>> text = 'a,b,c'
>>> text = text.split(',')
>>> text
[ 'a', 'b', 'c' ]
বিকল্পভাবে, আপনি eval()
যদি স্ট্রিংটিকে নিরাপদ বলে বিশ্বাস করেন তবে আপনি ব্যবহার করতে পারেন :
>>> text = 'a,b,c'
>>> text = eval('[' + text + ']')
কেবল বিদ্যমান উত্তরগুলিতে যোগ করার জন্য: আশা করি, ভবিষ্যতে আপনি এরকম আরও কিছু মুখোমুখি হবেন:
>>> word = 'abc'
>>> L = list(word)
>>> L
['a', 'b', 'c']
>>> ''.join(L)
'abc'
তবে আপনি এখনই কী মোকাবেলা করছেন , @ ক্যামেরনের উত্তর দিয়ে যান।
>>> word = 'a,b,c'
>>> L = word.split(',')
>>> L
['a', 'b', 'c']
>>> ','.join(L)
'a,b,c'
নিম্নলিখিত পাইথন কোডটি আপনার স্ট্রিংটিকে স্ট্রিংয়ের তালিকায় পরিণত করবে:
import ast
teststr = "['aaa','bbb','ccc']"
testarray = ast.literal_eval(teststr)
json
উদাহরণস্বরূপ ব্যবহার করতে পারেন :json.loads(teststr)
পাইথনে আপনাকে খুব কমই স্ট্রিংকে একটি তালিকায় রূপান্তর করতে হবে, কারণ স্ট্রিং এবং তালিকাগুলি একই রকম
আপনার যদি সত্যিই একটি স্ট্রিং থাকে যা একটি অক্ষর অ্যারে হওয়া উচিত, এটি করুন:
In [1]: x = "foobar"
In [2]: list(x)
Out[2]: ['f', 'o', 'o', 'b', 'a', 'r']
লক্ষ করুন যে স্ট্রিংগুলি পাইথনের তালিকার মতো
In [3]: x[0]
Out[3]: 'f'
In [4]: for i in range(len(x)):
...: print x[i]
...:
f
o
o
b
a
r
স্ট্রিং তালিকা। প্রায়।
আপনি যদি স্পেস দিয়ে বিভাজন করতে চান তবে আপনি কেবল ব্যবহার করতে পারেন .split()
:
a = 'mary had a little lamb'
z = a.split()
print z
আউটপুট:
['mary', 'had', 'a', 'little', 'lamb']
()
, অর্থাত্ কিছুই নয়।
আপনি যদি সত্যিই অ্যারেগুলি চান:
>>> from array import array
>>> text = "a,b,c"
>>> text = text.replace(',', '')
>>> myarray = array('c', text)
>>> myarray
array('c', 'abc')
>>> myarray[0]
'a'
>>> myarray[1]
'b'
আপনার যদি অ্যারের প্রয়োজন না হয় এবং কেবল আপনার অক্ষরগুলির সূচী অনুসারে দেখতে চান তবে মনে রাখবেন একটি স্ট্রিং একটি পুনরাবৃত্তিযোগ্য, কেবলমাত্র তালিকার মতো এটি অপরিবর্তনীয়:
>>> text = "a,b,c"
>>> text = text.replace(',', '')
>>> text[0]
'a'
সমস্ত উত্তরগুলি ভাল, কাজ করার আরও একটি উপায় রয়েছে যা তালিকা বোধগম্যতা, নীচের সমাধানটি দেখুন।
u = "UUUDDD"
lst = [x for x in u]
কমা দ্বারা পৃথক তালিকার জন্য নিম্নলিখিতটি করুন
u = "U,U,U,D,D,D"
lst = [x for x in u.split(',')]
আমি সাধারণত:
l = [ word.strip() for word in text.split(',') ]
strip
শব্দ প্রায় অপসারণ স্পেস।
string
ফর্মটি রূপান্তর করতে a="[[1, 3], [2, -6]]"
আমি লিখেছিলাম এখনও অপটিমাইজড কোডটি নয়:
matrixAr = []
mystring = "[[1, 3], [2, -4], [19, -15]]"
b=mystring.replace("[[","").replace("]]","") # to remove head [[ and tail ]]
for line in b.split('], ['):
row =list(map(int,line.split(','))) #map = to convert the number from string (some has also space ) to integer
matrixAr.append(row)
print matrixAr
ক্রিয়ামূলক পাইথন ব্যবহার:
text=filter(lambda x:x!=',',map(str,text))
উদাহরণ 1
>>> email= "myemailid@gmail.com"
>>> email.split()
#OUTPUT
["myemailid@gmail.com"]
উদাহরণ 2
>>> email= "myemailid@gmail.com, someonsemailid@gmail.com"
>>> email.split(',')
#OUTPUT
["myemailid@gmail.com", "someonsemailid@gmail.com"]