সুতরাং আমার একটি তালিকা আছে:
['x', 3, 'b']
এবং আমি আউটপুটটি হতে চাই:
[x, 3, b]
অজগরে আমি কীভাবে এটি করতে পারি?
আমি যদি করি তবে আমি str(['x', 3, 'b'])একটি উদ্ধৃতি পেয়েছি, তবে আমি উদ্ধৃতি চাই না।
উত্তর:
পাইথন 2 এ:
mylist = ['x', 3, 'b']
print '[%s]' % ', '.join(map(str, mylist))
পাইথন 3 এ (যেখানে printকোনও বিল্টিন ফাংশন রয়েছে এবং সিনট্যাক্স বৈশিষ্ট্যটি আর নয়):
mylist = ['x', 3, 'b']
print('[%s]' % ', '.join(map(str, mylist)))
উভয়ই ফিরে:
[x, 3, b]
এটি আমার তালিকার map()প্রতিটি উপাদানটির জন্য স্ট্রিং কল করতে ফাংশনটি ব্যবহার করছে , তারপরে একটি স্ট্রিংয়ের সাথে যুক্ত হওয়া স্ট্রিংগুলির একটি নতুন তালিকা তৈরি করবে str.join()। তারপর, %স্ট্রিং অপারেটর বিন্যাস মধ্যে পরিবর্তে স্ট্রিং কর্মের পরিবর্তে %sমধ্যে "[%s]"।
mapফোন করতে ফাংশনটি ব্যবহার করছেন, তারের সাথে একটি নতুন স্ট্রিংয়ের সাথে যুক্ত হয়ে তার একটি নতুন তালিকা তৈরি করছেন । তারপর, তিনি ব্যবহার স্ট্রিং অপারেটর বিন্যাস মধ্যে পরিবর্তে স্ট্রিং খেলোয়াড়রা মধ্যে । strmyliststr.join%%s"[%s]"
"[{0}]".format(", ".join(str(i) for i in mylist))
map(f, xs)(বা imapপাইথন 2.x এ) পছন্দ করি ; যা কম বাইটোকোড চালায় এবং সাধারণত আরও কমপ্যাক্ট থাকে। অবশ্যই Dont না না চেয়ে অনেক খারাপ(f(x) for x in xs)f map(lambda x:..., xs)(... for x in xs)
এটি সাধারণ কোড, সুতরাং আপনি যদি নতুন হন তবে আপনার এটি সহজেই বোঝা উচিত।
mylist = ["x", 3, "b"]
for items in mylist:
print(items)
এটি যেমনটি চেয়েছিল তেমন সমস্তগুলি মুদ্রণ ছাড়াই মুদ্রণ করে।
যদি আপনি পাইথন 3 ব্যবহার করেন:
print('[',end='');print(*L, sep=', ', end='');print(']')
print(end='['); print(*l, sep=', ', end=']\n')
ব্যবহারের পরিবর্তে map, আমি একজন জেনারেটর এক্সপ্রেশনটি joinএকটি পুনরাবৃত্তিকে গ্রহণ করার ক্ষমতা সহ ব্যবহার করার পরামর্শ দেব :
def get_nice_string(list_or_iterator):
return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
এখানে joinস্ট্রিং ক্লাসের সদস্য ফাংশন রয়েছে str। এটিতে একটি যুক্তি লাগে: স্ট্রিংগুলির একটি তালিকা (বা পুনরুক্তি), তারপরে এই ক্ষেত্রে, দ্বারা সংযুক্ত সমস্ত উপাদানগুলির সাথে একটি নতুন স্ট্রিং প্রদান করে ,।
", ".join( str(x) for x in list_or_iterator).join('[]')
আপনি একটি স্ট্রিং তার ব্যবহার থেকে সব অবাঞ্ছিত অক্ষর মুছে দিতে পারেন translate()পদ্ধতি সঙ্গে Noneজন্য tableযুক্তি স্ট্রিং অক্ষর (গুলি) ধারণকারী আপনি তার জন্য সরানো হোক দ্বারা অনুসরণ deletecharsযুক্তি।
lst = ['x', 3, 'b']
print str(lst).translate(None, "'")
# [x, 3, b]
আপনি যদি ২.6 এর আগে পাইথনের একটি সংস্করণ ব্যবহার করে থাকেন তবে stringএর translate()পরিবর্তে আপনাকে মডিউলটির ফাংশনটি ব্যবহার করতে হবে কারণ অজু যুক্ত Noneহিসাবে পাস করার ক্ষমতা tableপাইথন ২.6 না হওয়া পর্যন্ত যুক্ত করা হয়নি। এটি ব্যবহার করে এমনটি দেখায়:
import string
print string.translate(str(lst), None, "'")
string.translate()ফাংশনটি ব্যবহার করা ২.6++ এও কাজ করবে, সুতরাং এটি ব্যবহার করা পছন্দনীয়।
lst = ["it isn't", 3, 'b']==> ["it isnt", 3, b]এবং এর সাথেlst = ['it isn\'t', 3, 'b']
এখানে @ টোকেনম্যাকগুয়ের ওয়ান-লাইনারের কয়েকটি ধাপ দেখানো একটি ইন্টারেক্টিভ সেশন রয়েছে। প্রথমে তিনি mapতালিকার প্রতিটি আইটেমকে স্ট্রিংয়ে রূপান্তর করতে ফাংশনটি ব্যবহার করেন (আসলে, তিনি একটি নতুন তালিকা তৈরি করছেন, পুরানো তালিকার আইটেমগুলিকে রূপান্তর না করে)। তারপরে তিনি স্ট্রিং পদ্ধতিটি ব্যবহার করছেন তার মধ্যে joinএই স্ট্রিংগুলির সাথে একত্রিত ', 'করার জন্য। বাকিটি কেবল স্ট্রিং ফর্ম্যাটিং, যা বেশ সোজা। (সম্পাদনা করুন: এই উদাহরণটি সোজা; সাধারণভাবে স্ট্রিং ফর্ম্যাটিং কিছুটা জটিল হতে পারে))
নোট করুন যে ব্যবহার joinকরা বেশ কয়েকটি সাবস্ট্রিং থেকে স্ট্রিং তৈরির সহজ এবং কার্যকরী উপায়, ক্রমাগত স্ট্রিংগুলিতে স্ট্রিং যুক্ত করার মাধ্যমে এটি করার চেয়ে অনেক বেশি দক্ষ, যা পর্দার আড়ালে অনেক অনুলিপি জড়িত।
>>> mylist = ['x', 3, 'b']
>>> m = map(str, mylist)
>>> m
['x', '3', 'b']
>>> j = ', '.join(m)
>>> j
'x, 3, b'
.formatস্ট্রিং ফর্ম্যাটিংয়ের জন্য ব্যবহার করে ,
mylist = ['x', 3, 'b']
print("[{0}]".format(', '.join(map(str, mylist))))
আউটপুট:
[x, 3, b]
ব্যাখ্যা:
mapstringটাইপ করতে তালিকার প্রতিটি উপাদান ম্যাপ করতে ব্যবহৃত হয় ।,হিসাবে স্ট্রিংয়ের সাথে একত্রে যুক্ত হয় ।[এবং ]প্রিন্ট বিবৃতিতে তালিকা ধনুর্বন্ধনী দেখানোর জন্য।রেফারেন্স:
.formatPEP-3101 স্ট্রিং বিন্যাসের জন্য
.formatসর্বাধিক পাইথোনিক উপায় ব্যবহার করে দেখতে পাই । তবে অবশ্যই আমি দ্বিমত পোষণ করি। ;)
আমি @ অ্যানিমেন দ্বারা অনুপ্রাণিত হয়ে পাইথোনিক আরও সাধারণ সমাধান লেখার জন্য।
mylist = ['x', 3, 'b']
print('[{}]'.format(', '.join(map('{}'.format, mylist))))
এটি কেবল formatপদ্ধতিটিই ব্যবহার করে । এর কোনও চিহ্ন নেই strএবং এটি উপাদানগুলির ফর্ম্যাটটির সূক্ষ্ম সুর করার অনুমতি দেয়। উদাহরণস্বরূপ, তালিকার উপাদান হিসাবে যদি আপনার কাছে ভাসমান সংখ্যা থাকে তবে আপনি এই ক্ষেত্রে কোনও রূপান্তর নির্দিষ্টকারী যুক্ত করে তাদের বিন্যাসটি সামঞ্জস্য করতে পারেন:.2f
mylist = [1.8493849, -6.329323, 4000.21222111]
print("[{}]".format(', '.join(map('{:.2f}'.format, mylist))))
আউটপুট বেশ শালীন:
[1.85, -6.33, 4000.21]
print(["Sam"])কলগুলি কল করেrepr("Sam"), যা কল করে'Sam'(উদ্ধৃতি সহ) ফিরে আসে , যখন আপনি কল করেনprint("Sam")এবং পাইথন কলগুলি কলstr("Sam")দেয়Sam( কোটগুলি ছাড়াই) unlike দেখুন মধ্যে পার্থক্যstrএবংreprবা পাইথনstrএবংlistগুলি আরও তথ্যের জন্য।