স্ট্রিং তালিকায় কনটেনেট আইটেম


573

একটি তালিকাতে স্ট্রিং আইটেমগুলি একক স্ট্রিংয়ের সাথে সংযুক্ত করার সহজ উপায় কি? আমি কি str.join()ফাংশনটি ব্যবহার করতে পারি ?

যেমন এটি ইনপুট ['this','is','a','sentence']এবং এটি পছন্দসই আউটপুটthis-is-a-sentence

sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
    sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str

24
'-'.join(sentence)
অ্যাল্যান্ড

উত্তর:


1049

ব্যবহার join:

>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'

13
বুঝতে পারিনি, বাম দিকে '-' কী হওয়ার কথা ??
লরেন্স ডিসুজা

5
@ লাওরেন্সডিজোজা আপনি যে স্ট্রিংয়ে যোগ দিতে চান তা অনুসরণ করুন; দেখতে ডকুমেন্টেশন , অথবা এই উত্তরটি যা একটি বিট আরো বিস্তারিত মধ্যে যায়।
বুরহান খালিদ

9
sentence.join(" ")বিপরীতমুখী অপারেশন হওয়ায় আমিও কাজ করার প্রত্যাশা করি list.split(" ")। কোনও ধারণা যদি এটি তালিকাগুলির জন্য পাইথনের পদ্ধতিতে যুক্ত হতে চলেছে?
ওয়াউটার থিলেন

10
@ ওয়াটার, এটি হবে না। একদিকে কেবল স্ট্রিংয়ের তালিকাগুলিই যুক্ত হতে পারে; তাই list.joinএকটি অবাধ তালিকার জন্য অনুপযুক্ত হবে। অন্যদিকে, যুক্তিটি str.joinকেবল একটি তালিকা নয়, কোনও স্ট্রিংয়ের "পুনরাবৃত্ত" ধারাবাহিক হতে পারে। একমাত্র জিনিস যা বোঝাতে পারে তা একটি অন্তর্নির্মিত ফাংশন join(list, sep); stringআপনি যদি সত্যিই এটি চান তবে এটি (মূলত অপ্রচলিত) মডিউলে রয়েছে।
অ্যালেক্সিস

4
@ লিও' '.join(['this', 'is', 'a', 'sentence'])
বুরহান খালিদ

120

পাইথন তালিকাগুলিকে স্ট্রিংয়ে রূপান্তর করার আরও সাধারণ উপায় হ'ল:

>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> my_lst_str = ''.join(map(str, my_lst))
>>> print(my_lst_str)
'12345678910'

3
ইনপুটটি স্ট্রিং থাকাকালীন তালিকা বোধগম্যতা কেন প্রয়োজনীয়? এছাড়াও map(str, my_lst)তালিকা enumerating =) ছাড়া যথেষ্ট হবে
alvas

5
এই প্রশ্নের উত্তরগুলির বেশিরভাগই মামলাটি বিবেচনা করছে যখন তালিকায় এতে স্ট্রিং থাকে। তালিকাগুলিগুলিকে স্ট্রিংয়ে রূপান্তর করার জন্য খনি একটি সাধারণ উপায়। আমার উদাহরণে, তালিকাটি টাইপের intহলেও এটি কোনও ধরণের হতে পারে যা স্ট্রিং হিসাবে উপস্থাপন করা যেতে পারে।
প্যাকের ছাগলছানা

3
এটি যুক্ত করার জন্য, ল্যাম্বডা ফাংশন ব্যবহার করার সাথে মানচিত্রটিও কার্যকর হবে। উদাহরণস্বরূপ ' '.join(map(lambda x: ' $'+ str(x), my_lst))ফিরে আসবে'$1 $2 $3 $4 $5 $6 $7 $8 $9 $10'
স্কটএমসিসি

3
একটি মানচিত্র যুক্ত করা স্ট্রিং বাদে ডেটাটাইপগুলিতে আসলে সহায়তা করে। গ্রেট!
আপেলবয়

39

যোগদানের জন্য স্ট্রিং পদ্ধতি কেন তা প্রাথমিকভাবে জানতে এটি খুব দরকারী ।

এটি শুরুতে খুব অদ্ভুত তবে এর পরে খুব দরকারী।

যোগদানের ফলাফলটি সর্বদা একটি স্ট্রিং থাকে তবে যুক্ত হওয়া বস্তুটি অনেক ধরণের (জেনারেটর, তালিকা, টিপলস ইত্যাদি) হতে পারে।

.joinদ্রুত কারণ এটি একবারে মেমরি বরাদ্দ করে। শাস্ত্রীয় কনটেন্টেশন (দেখুন, প্রসারিত ব্যাখ্যা ) এর চেয়ে ভাল ।

একবার আপনি এটি শিখলে, এটি খুব আরামদায়ক এবং বন্ধনী যুক্ত করতে আপনি এই জাতীয় কৌশলগুলি করতে পারেন।

>>> ",".join("12345").join(("(",")"))
Out:
'(1,2,3,4,5)'

>>> list = ["(",")"]
>>> ",".join("12345").join(list)
Out:
'(1,2,3,4,5)'

12

যদিও @ বুরহান খালিদের উত্তর ভাল, আমি মনে করি এটি এর থেকে আরও বোধগম্য:

from str import join

sentence = ['this','is','a','sentence']

join(sentence, "-") 

() এ যোগদানের দ্বিতীয় যুক্তিটি alচ্ছিক এবং "" এর ডিফল্ট।

সম্পাদনা: পাইথন 3 এ এই ফাংশনটি সরানো হয়েছিল


14
এই ফাংশনটি ২.x এ অবমূল্যায়ন করা হয়েছে এবং 3.x এ সরানো হবে going এটি হ'ল, আমি সরবরাহ করা অন্যান্য উত্তরগুলির চেয়ে এটি ব্যবহার করার পরামর্শ দেব না।
ম্যাথু গ্রিন

@ ম্যাথিউ গ্রিন এই উত্তরটি দিয়েছেন এবং বুরহান খালিদের উত্তর একই উপায়ে বিভিন্ন উপায়ে ব্যবহার করেছেন, সুতরাং তাঁর উত্তরটিও হ্রাস পেয়েছে। তবে এটি নির্দেশ করার জন্য ধন্যবাদ, কীভাবে 3.x এ যোগদান করতে হবে তা খুঁজে বের করতে হবে। তবে আপনি যদি ২.x ব্যবহার করেন তবে তা দূরে যাচ্ছে না।
সাইলেন্টভয়েড

1
যদিও তাকে অবহেলা করা হয়নি। আপনার প্রস্তাবনায় লিবি / স্ট্রিং.পি থেকে কোনও ফাংশন ব্যবহার করা হয়েছে যা সম্পূর্ণ আলাদা এবং অবচয়যুক্ত যেখানে @ বুরহানখালিদ উত্তর অন্তর্নির্মিত স্ট্রিং পদ্ধতি ব্যবহার করে যা অবহিত নয়। তার উত্তরটি এখন সবচেয়ে সঠিক এবং এগিয়ে যাচ্ছে যদিও এটি এখন 2.x এ কেবলমাত্র ভাল whereas
ম্যাথু গ্রীন

যা বলার অপেক্ষা রাখে না আপনি যদি এই বিকল্প প্রচার করতে চান তবে আপনার একটি সতর্কতাও অন্তর্ভুক্ত করা উচিত যা আমার আগের মন্তব্যে বর্ণিত কারণগুলির জন্য প্রস্তাবিত নয়।
ম্যাথু গ্রীন

2

স্ট্রিংয়ে কীভাবে যোগ দিতে হবে তা আমরা উল্লেখ করতে পারি। '-' এর পরিবর্তে আমরা '' ব্যবহার করতে পারি

sentence = ['this','is','a','sentence']
s=(" ".join(sentence))
print(s)

2

আমরা পাইথনের হ্রাস কার্যকারিতাও ব্যবহার করতে পারি :

from functools import reduce

sentence = ['this','is','a','sentence']
out_str = str(reduce(lambda x,y: x+"-"+y, sentence))
print(out_str)

4
খুব অ-অনড় জটিল, কেন শুধু ব্যবহার করছেন না join?
সেবাস্তিয়ান পালমা

-1
def eggs(someParameter):
    del spam[3]
    someParameter.insert(3, ' and cats.')


spam = ['apples', 'bananas', 'tofu', 'cats']
eggs(spam)
spam =(','.join(spam))
print(spam)

2
যদিও এই কোড স্নিপেট একটি সমাধান সহ সমাধান হতে পারে, সত্যিই আপনার পোস্টের গুণমান উন্নত করতে সহায়তা করে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, এবং সেই লোকেরা আপনার কোড পরামর্শের কারণগুলি জানেন না।
alan.elkin 21
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.