பைதான் பட்டியல்களின் (வரிசைகள்) குறிப்பிட்ட கூறுகளை பிரித்தெடுத்தல், மாற்றுதல் மற்றும் மாற்றுதல்

வணிக

பைத்தானில் புதிய பட்டியலை உருவாக்க, ஏற்கனவே உள்ள பட்டியலில் (வரிசை) சில நிபந்தனைகளை பூர்த்தி செய்யும் கூறுகளை மட்டும் பிரித்தெடுத்தல் அல்லது நீக்குதல் அல்லது மாற்றீடுகள் அல்லது மாற்றங்களைச் செய்வதன் மூலம், பட்டியல் புரிதல்களைப் பயன்படுத்தவும்.

மாதிரிக் குறியீட்டுடன் பின்வருபவை இங்கே விளக்கப்பட்டுள்ளன.

  • பட்டியல் புரிதல் குறியீட்டின் அடிப்படை வடிவம்
  • பட்டியலின் அனைத்து கூறுகளுக்கும் செயல்முறையைப் பயன்படுத்துங்கள்
  • பட்டியலிலிருந்து நிபந்தனைகளை பூர்த்தி செய்யும் கூறுகளை பிரித்தெடுத்து நீக்கவும்
  • பட்டியலின் நிபந்தனைகளை பூர்த்தி செய்யும் கூறுகளை மாற்றவும் அல்லது மாற்றவும்

சரங்களின் பட்டியல்களின் குறிப்பிட்ட எடுத்துக்காட்டுகளுக்கு பின்வரும் கட்டுரையைப் பார்க்கவும்.

அளவுகோல்களை பூர்த்தி செய்யாத கூறுகளை தோராயமாக பிரித்தெடுக்கவும் முடியும்.

பட்டியல்கள் வெவ்வேறு வகையான தரவைச் சேமிக்கலாம் மற்றும் வரிசைகளிலிருந்து கண்டிப்பாக வேறுபட்டவை என்பதை நினைவில் கொள்ளவும். நினைவக அளவு மற்றும் நினைவக முகவரிகள் அல்லது பெரிய தரவுகளின் எண்ணியல் செயலாக்கம் தேவைப்படும் செயல்முறைகளில் அணிவரிசைகளைக் கையாள விரும்பினால், வரிசை (நிலையான நூலகம்) அல்லது NumPy ஐப் பயன்படுத்தவும்.

பின்வரும் பட்டியல் ஒரு உதாரணம்

l = list(range(-5, 6))
print(l)
# [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]

பட்டியல் புரிதல் குறியீட்டின் அடிப்படை வடிவம்

பட்டியலிலிருந்து புதிய பட்டியலை உருவாக்கும் போது, ​​லூப்களை விட பட்டியல் புரிதல்கள் எழுதுவது எளிது.

[expression for any variable name in iterable object if conditional expression]

செயலிழக்கக்கூடிய பொருளின் (பட்டியல் அல்லது டூப்பிள் போன்றவை) நிபந்தனை வெளிப்பாட்டை பூர்த்தி செய்யும் ஒரு உறுப்புக்கு வெளிப்பாடு பயன்படுத்தப்படுகிறது மற்றும் புதிய பட்டியலின் உறுப்பாக மாறும். “நிபந்தனை வெளிப்பாடு என்றால்” தவிர்க்கப்படலாம், இதில் வெளிப்பாடு அனைத்து உறுப்புகளுக்கும் பயன்படுத்தப்படும்.

உள்ளமை பட்டியல் புரிதல் குறிப்பீடு உட்பட மேலும் விவரங்களுக்கு பின்வரும் கட்டுரையைப் பார்க்கவும்.

பட்டியலின் அனைத்து கூறுகளுக்கும் செயல்முறையைப் பயன்படுத்துங்கள்

எடுத்துக்காட்டாக, பட்டியலின் அனைத்து கூறுகளுக்கும் சில செயலாக்கத்தைப் பயன்படுத்த விரும்பினால், மேலே உள்ள பட்டியல் புரிதல் வெளிப்பாட்டில் விரும்பிய செயலாக்கத்தை விவரிக்கவும்.

l_square = [i**2 for i in l]
print(l_square)
# [25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]

l_str = [str(i) for i in l]
print(l_str)
# ['-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5']

எண்களின் பட்டியல்கள் மற்றும் சரங்களின் பட்டியல்களுக்கு இடையில் மாற்ற இதைப் பயன்படுத்தலாம்.

பட்டியலிலிருந்து நிபந்தனைகளை பூர்த்தி செய்யும் கூறுகளை பிரித்தெடுத்து நீக்கவும்

உறுப்பு ஒரு நிபந்தனை வெளிப்பாடு மூலம் மட்டுமே தேர்ந்தெடுக்கப்பட வேண்டும் என்றால், அது ஒரு வெளிப்பாடு மூலம் செயலாக்கப்படாது, எனவே அது பின்வரும் படிவத்தை எடுக்கும்

[variable name for variable name in original list if conditional expression]

ஒரு புதிய பட்டியல் உருவாக்கப்படுகிறது, அதில் இருந்து நிபந்தனையை பூர்த்தி செய்யும் கூறுகள் மட்டுமே (நிபந்தனை வெளிப்பாடு உண்மையாக இருக்கும் கூறுகள்) பிரித்தெடுக்கப்படுகின்றன.

l_even = [i for i in l if i % 2 == 0]
print(l_even)
# [-4, -2, 0, 2, 4]

l_minus = [i for i in l if i < 0]
print(l_minus)
# [-5, -4, -3, -2, -1]

“நிபந்தனை வெளிப்பாடு” என்றால் “நிபந்தனை வெளிப்பாடு இல்லை என்றால்,” அது ஒரு நிராகரிப்பாக மாறும், மேலும் நிபந்தனையை பூர்த்தி செய்யாத கூறுகளை மட்டுமே (நிபந்தனை வெளிப்பாடு தவறானதாக இருக்கும் கூறுகள்) தேர்ந்தெடுத்து பிரித்தெடுக்க முடியும். வேறு வார்த்தைகளில் கூறுவதானால், நிபந்தனையை பூர்த்தி செய்யும் கூறுகள் அகற்றப்படும் புதிய பட்டியல் உருவாக்கப்படுகிறது.

l_odd = [i for i in l if not i % 2 == 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]

l_plus = [i for i in l if not i < 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]

நிச்சயமாக, இல்லை என்பதை பயன்படுத்தாமல் சமமான நிபந்தனை வெளிப்பாட்டைக் குறிப்பிடுவதன் மூலம் அதே முடிவு பெறப்படுகிறது.

l_odd = [i for i in l if i % 2 != 0]
print(l_odd)
# [-5, -3, -1, 1, 3, 5]

l_plus = [i for i in l if i >= 0]
print(l_plus)
# [0, 1, 2, 3, 4, 5]

நிபந்தனை வெளிப்பாடு பகுதி பல நிபந்தனைகளாக இருக்கலாம். எதிர்மறை குறிப்புகளையும் பயன்படுத்தலாம்.

l_minus_or_even = [i for i in l if (i < 0) or (i % 2 == 0)]
print(l_minus_or_even)
# [-5, -4, -3, -2, -1, 0, 2, 4]

l_minus_and_odd = [i for i in l if (i < 0) and not (i % 2 == 0)]
print(l_minus_and_odd)
# [-5, -3, -1]

பட்டியலின் நிபந்தனைகளை பூர்த்தி செய்யும் கூறுகளை மாற்றவும் அல்லது மாற்றவும்

மேலே உள்ள உறுப்பு பிரித்தெடுத்தல் உதாரணத்தில், நிபந்தனைகளை பூர்த்தி செய்யாத கூறுகள் அகற்றப்பட்டன.

நிபந்தனைகளைப் பூர்த்தி செய்யும் கூறுகளில் மட்டுமே மாற்றீடுகள், மாற்றங்கள் போன்றவற்றைச் செய்ய விரும்பினால், பட்டியல் புரிதல் குறியீட்டின் வெளிப்பாடு பகுதிக்கு மும்மை ஆபரேட்டரைப் பயன்படுத்தவும்.

பைத்தானில், மும்மை ஆபரேட்டரை பின்வருமாறு எழுதலாம்

True Value if Conditional Expression else False Value
a = 80
x = 100 if a > 50 else 0
print(x)
# 100

b = 30
y = 100 if b > 50 else 0
print(y)
# 0

இது சற்று சிக்கலானது, ஆனால் பட்டியல் புரிதல் குறியீடு மற்றும் மும்முனை ஆபரேட்டர்களின் கலவையானது பின்வருமாறு.

[True Value if Conditional Expression else False Value for any variable name in original list]

அடைப்புக்குறிக்குள் இணைக்கப்பட்ட பகுதி மும்மை ஆபரேட்டர் (உண்மையான குறியீட்டில் அடைப்புக்குறிகள் தேவையில்லை).

[(True Value if Conditional Expression else False Value) for any variable name in original list]

உண்மை அல்லது தவறான மதிப்புகளுக்கு ஏதேனும் மாறி பெயர் எழுதப்பட்டால், அசல் தனிமத்தின் மதிப்பு அப்படியே பயன்படுத்தப்படும். ஒரு வெளிப்பாடு எழுதப்பட்டால், அந்த வெளிப்பாட்டின் செயலாக்கம் பயன்படுத்தப்படுகிறது.

l_replace = [100 if i > 0 else i for i in l]
print(l_replace)
# [-5, -4, -3, -2, -1, 0, 100, 100, 100, 100, 100]

l_replace2 = [100 if i > 0 else 0 for i in l]
print(l_replace2)
# [0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 100]

l_convert = [i * 10 if i % 2 == 0 else i for i in l]
print(l_convert)
# [-5, -40, -3, -20, -1, 0, 1, 20, 3, 40, 5]

l_convert2 = [i * 10 if i % 2 == 0 else i / 10 for i in l]
print(l_convert2)
# [-0.5, -40, -0.3, -20, -0.1, 0, 0.1, 20, 0.3, 40, 0.5]
Copied title and URL