பின்வரும் உள்ளடக்கங்கள், மாதிரிக் குறியீட்டுடன், பைத்தானில் ஒருவருக்கொருவர் சரங்களின் (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]