પાયથોન સૂચિઓ (એરે) ના વિશિષ્ટ ઘટકોને બહાર કાઢો, બદલો અને રૂપાંતરિત કરો

બિઝનેસ

પાયથોનમાં નવી સૂચિ બનાવવા માટે, અસ્તિત્વમાંની સૂચિ (એરે) ના ફક્ત તે ઘટકોને કાઢીને અથવા કાઢી નાખીને કે જે ચોક્કસ શરતોને સંતોષે છે, અથવા બદલીઓ અથવા રૂપાંતરણો કરીને, સૂચિ સમજણનો ઉપયોગ કરો.

સેમ્પલ કોડ સાથે અહીં નીચેનું સમજાવ્યું છે.

  • સૂચિ સમજણ સંકેતનું મૂળભૂત સ્વરૂપ
  • સૂચિના તમામ ઘટકો પર પ્રક્રિયા લાગુ કરો
  • માપદંડોને પૂર્ણ કરતી સૂચિમાંથી ઘટકોને બહાર કાઢો અને કાઢી નાખો
  • સૂચિની શરતોને સંતોષતા ઘટકોને બદલો અથવા કન્વર્ટ કરો

શબ્દમાળાઓની સૂચિના વિશિષ્ટ ઉદાહરણો માટે નીચેનો લેખ જુઓ.

માપદંડોને પૂર્ણ ન કરતા તત્વોને રેન્ડમલી કાઢવાનું પણ શક્ય છે.

નોંધ કરો કે સૂચિઓ વિવિધ પ્રકારના ડેટાને સંગ્રહિત કરી શકે છે અને એરેથી સખત રીતે અલગ છે. જો તમે પ્રક્રિયાઓમાં એરેને હેન્ડલ કરવા માંગતા હો કે જેમાં મેમરીનું કદ અને મેમરી સરનામાં અથવા મોટા ડેટાની સંખ્યાત્મક પ્રક્રિયાની જરૂર હોય, તો એરે (સ્ટાન્ડર્ડ લાઇબ્રેરી) અથવા 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]