নিম্নলিখিত বিষয়বস্তু, নমুনা কোড সহ, ব্যাখ্যা করে কিভাবে পাইথনে স্ট্রিং (str) এর তালিকা (অ্যারে) এবং সংখ্যার তালিকা (int, float) একে অপরের সাথে রূপান্তর করা যায়।
- সংখ্যার একটি তালিকাকে স্ট্রিংয়ের তালিকায় রূপান্তর করুন
- একটি সংখ্যাকে দশমিক স্ট্রিংয়ে রূপান্তর করুন
- সাংখ্যিক মানগুলিকে বাইনারি, অক্টাল এবং হেক্সাডেসিমেল স্ট্রিংগুলিতে রূপান্তর করে৷
- সূচকীয় স্বরলিপিতে একটি সাংখ্যিক মানকে একটি স্ট্রিংয়ে রূপান্তর করে
- স্ট্রিংগুলির একটি তালিকাকে সংখ্যার তালিকায় রূপান্তর করুন
- দশমিক স্ট্রিংকে সংখ্যায় রূপান্তর করুন
- বাইনারি, অক্টাল এবং হেক্সাডেসিমেল স্ট্রিংকে সংখ্যায় রূপান্তর করে
- সূচকীয় স্বরলিপিতে স্ট্রিংগুলিকে সংখ্যাসূচক মানগুলিতে রূপান্তর করে
- কেবলমাত্র স্ট্রিংগুলিকে রূপান্তর করুন যা সংখ্যায় রূপান্তরিত হতে পারে
একটি তালিকা থেকে একটি নতুন তালিকা তৈরি করার সময়, লুপের চেয়ে তালিকা বোঝা সহজ হয়। এই নিবন্ধের নমুনা কোড তালিকা বোঝার ব্যবহার করে। তালিকা বোঝার বিশদ বিবরণের জন্য, নিম্নলিখিত নিবন্ধটি দেখুন।
মনে রাখবেন যে তালিকাগুলি বিভিন্ন ধরণের ডেটা সঞ্চয় করতে পারে এবং অ্যারে থেকে কঠোরভাবে আলাদা। নিম্নলিখিত ক্ষেত্রে অ্যারে (স্ট্যান্ডার্ড লাইব্রেরি) বা NumPy ব্যবহার করুন।
- আমি এমন প্রক্রিয়াগুলি পরিচালনা করতে চাই যার জন্য মেমরির আকার এবং মেমরি ঠিকানা প্রয়োজন।
- বড় ডেটা সেট ইত্যাদির সংখ্যাগত প্রক্রিয়াকরণের জন্য অ্যারেগুলি পরিচালনা করতে চান।
সংখ্যার একটি তালিকাকে স্ট্রিংয়ের তালিকায় রূপান্তর করুন
একটি সংখ্যাকে দশমিক স্ট্রিংয়ে রূপান্তর করুন
সংখ্যাসূচক থেকে স্ট্রিং রূপান্তর করতে str() ব্যবহার করুন।
পাইথনে, সংখ্যাগুলিকে সূচকীয়, হেক্সাডেসিমাল এবং বাইনারি (হেক্সাডেসিমেল এবং বাইনারি নোটেশন) সহ বিভিন্ন বিন্যাসে প্রকাশ করা যেতে পারে। str() রূপান্তরের ফলে সাধারণ দশমিক স্বরলিপিতে একটি স্ট্রিং হয়।
সংখ্যার সংখ্যার উপর নির্ভর করে, সূচকীয় স্বরলিপি স্বয়ংক্রিয়ভাবে ব্যবহার করা যেতে পারে।
l_n = [-0.5, 0, 1.0, 100, 1.2e-2, 0xff, 0b11]
l_n_str = [str(n) for n in l_n]
print(l_n_str)
# ['-0.5', '0', '1.0', '100', '0.012', '255', '3']
সাংখ্যিক মানগুলিকে বাইনারি, অক্টাল এবং হেক্সাডেসিমেল স্ট্রিংগুলিতে রূপান্তর করে৷
বাইনারি, অক্টাল, বা হেক্সাডেসিমেল (বাইনারী নোটেশন, অক্টাল নোটেশন, বা হেক্সাডেসিমেল নোটেশন) স্ট্রিংগুলিতে রূপান্তর করতে, নিম্নলিখিত পদ্ধতিগুলি উপলব্ধ।
bin()
oct()
hex()
format()
str.format()
ফরম্যাট() ফাংশনের সাহায্যে শূন্য পূরণ করা এবং অঙ্কগুলি সামঞ্জস্য করা সম্ভব।
l_i = [0, 64, 128, 192, 256]
l_i_hex1 = [hex(i) for i in l_i]
print(l_i_hex1)
# ['0x0', '0x40', '0x80', '0xc0', '0x100']
l_i_hex2 = [format(i, '04x') for i in l_i]
print(l_i_hex2)
# ['0000', '0040', '0080', '00c0', '0100']
l_i_hex3 = [format(i, '#06x') for i in l_i]
print(l_i_hex3)
# ['0x0000', '0x0040', '0x0080', '0x00c0', '0x0100']
সূচকীয় স্বরলিপিতে একটি সাংখ্যিক মানকে একটি স্ট্রিংয়ে রূপান্তর করে
উপরে উল্লিখিত হিসাবে, কিছু ক্ষেত্রে স্বয়ংক্রিয়ভাবে সংখ্যার সংখ্যার উপর নির্ভর করে সূচকীয় স্বরলিপি হতে পারে। যাইহোক, সর্বদা সূচকীয় স্বরলিপিতে একটি স্ট্রিং-এ রূপান্তর করতে, নিম্নলিখিতগুলির মধ্যে একটি ব্যবহার করুন
format()
str.format()
ফরম্যাট() ফাংশন এবং স্ট্রিং পদ্ধতি str.format() সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত নিবন্ধটি দেখুন।
- সম্পর্কিত:পাইথনে ফরম্যাট কনভার্সন, ফরম্যাট (0-ফিলিং, এক্সপোনেনশিয়াল নোটেশন, হেক্সাডেসিমেল, ইত্যাদি)
ম্যান্টিসা অংশের সংখ্যার সংখ্যা নির্দিষ্ট করা যেতে পারে। যদি একটি বড় হাতের E একটি আর্গুমেন্ট হিসাবে ব্যবহার করা হয়, আউটপুট স্ট্রিংটিও একটি বড় হাতের E।
l_f = [0.0001, 123.456, 123400000]
l_f_e1 = [format(f, 'e') for f in l_f]
print(l_f_e1)
# ['1.000000e-04', '1.234560e+02', '1.234000e+08']
l_f_e2 = [format(f, '.3E') for f in l_f]
print(l_f_e2)
# ['1.000E-04', '1.235E+02', '1.234E+08']
স্ট্রিংগুলির একটি তালিকাকে সংখ্যার তালিকায় রূপান্তর করুন
দশমিক স্ট্রিংকে সংখ্যায় রূপান্তর করুন
স্ট্রিং থেকে সংখ্যায় রূপান্তর করতে int() বা float() ব্যবহার করুন।
int() হল একটি পূর্ণসংখ্যার রূপান্তর, এবং float() হল একটি ফ্লোটিং-পয়েন্ট সংখ্যার রূপান্তর।
float(), পূর্ণসংখ্যা অংশ বাদ দেওয়া স্ট্রিংগুলি পূর্ণসংখ্যা অংশের জন্য 0 দিয়ে পরিপূরক হয়।
l_si = ['-10', '0', '100']
l_si_i = [int(s) for s in l_si]
print(l_si_i)
# [-10, 0, 100]
l_sf = ['.123', '1.23', '123']
l_sf_f = [float(s) for s in l_sf]
print(l_sf_f)
# [0.123, 1.23, 123.0]
বাইনারি, অক্টাল এবং হেক্সাডেসিমেল স্ট্রিংকে সংখ্যায় রূপান্তর করে
int() এর দ্বিতীয় আর্গুমেন্টটি একটি রেডিক্স হতে পারে: বাইনারির জন্য 2, অক্টালের জন্য 8 এবং হেক্সাডেসিমেলের জন্য 16, একটি স্ট্রিংকে একটি সংখ্যায় রূপান্তরিত করে।
যদি 0 নির্দিষ্ট করা হয়, তাহলে নিচের প্রতিটি প্রিফিক্সড স্ট্রিং একটি পূর্ণসংখ্যাতে রূপান্তরিত হয়।
0b
- বাইনারি সংখ্যা
0o
- অক্টাল
0x
- হেক্সাডেসিমেল
l_sb = ['0011', '0101', '1111']
l_sb_i = [int(s, 2) for s in l_sb]
print(l_sb_i)
# [3, 5, 15]
l_sbox = ['100', '0b100', '0o77', '0xff']
l_sbox_i = [int(s, 0) for s in l_sbox]
print(l_sbox_i)
# [100, 4, 63, 255]
সূচকীয় স্বরলিপিতে স্ট্রিংগুলিকে সংখ্যাসূচক মানগুলিতে রূপান্তর করে
সূচকীয় স্বরলিপিতে স্ট্রিংগুলিকে বিশেষ স্পেসিফিকেশনের প্রয়োজন ছাড়াই সরাসরি float() দিয়ে রূপান্তর করা যেতে পারে।
l_se = ['1.23e3', '0.123e-1', '123']
l_se_f = [float(s) for s in l_se]
print(l_se_f)
# [1230.0, 0.0123, 123.0]
কেবলমাত্র স্ট্রিংগুলিকে রূপান্তর করুন যা সংখ্যায় রূপান্তরিত হতে পারে
int() বা float() তে একটি সংখ্যা রূপান্তর করা যাবে না এমন একটি স্ট্রিং পাস করার ফলে একটি ValueError হবে।
যদি একটি নতুন ফাংশন সংজ্ঞায়িত করা হয় যা ত্রুটির উপর মিথ্যা প্রদান করে, শুধুমাত্র যে উপাদানগুলি রূপান্তরিত হতে পারে সেগুলি সংখ্যায় রূপান্তরিত হতে পারে এবং তালিকার উপাদান হয়ে উঠতে পারে।
def is_int(s):
try:
int(s)
except ValueError:
return False
else:
return True
def is_float(s):
try:
float(s)
except ValueError:
return False
else:
return True
l_multi = ['-100', '100', '1.23', '1.23e2', 'one']
l_multi_i = [int(s) for s in l_multi if is_int(s)]
print(l_multi_i)
# [-100, 100]
l_multi_f = [float(s) for s in l_multi if is_float(s)]
print(l_multi_f)
# [-100.0, 100.0, 1.23, 123.0]