Kaip atimti du sąrašus Python

Python yra galingas, tačiau paprastas ir lengvai įsisavinamas pradedantiesiems, palyginti su kitomis programavimo kalbomis. Seka yra pagrindinė Python duomenų struktūra.

Kiekvienam sekos elementui priskiriamas skaičius – jo vieta arba indeksas. Iš eilės pirmasis indeksas yra 0; antrasis indeksas yra 1 ir pan.

Python turi šešias integruotas nuoseklias duomenų struktūras. Tarp jų visų sąrašai, eilutė ir masyvas yra plačiai naudojami Python. Šiame straipsnyje bus aptarta Python sąrašai ir kaip atimti du sąrašus Python .



Prieš eidami toliau, įsitikinkime, kad gerai suprantame Python sąrašus. Žmonės dažnai susimaišė tarp masyvų ir sąrašų. Kol kas sutikime, kad Python sąrašai yra kaip masyvai, nors tarp jų yra nedidelis skirtumas.

Sąrašai yra universaliausi ir dinamiškiausi Python duomenų tipai. Sąraše galime saugoti įvairių tipų duomenis.

Nesvarbu, ar tai skaičiai, simboliai ar eilutės. Norėdami inicijuoti sąrašą, visas reikšmes turime sudėti į laužtinius skliaustus ir atskirti kiekvieną reikšmę kableliais.

Sąrašo elementai yra žinomi kaip elementas. Atminkite, kad sąrašai yra keičiami. Mes galime bet kada pridėti, pašalinti, modifikuoti elementus Python programoje. Štai Python sąrašo pavyzdys:

demo_list1 = ['Mark', 'Alex', 1987, 2020]

demo_list2 = [5, 4, 3, 2, 1 ]

demo_list3 = ["x", "y", "z"]

Norėdami atspausdinti sąrašą, tereikia parašyti spausdinti () funkcija Python. Taip:

print(demo_list1)

Dabar eikime dar vienu žingsniu į priekį, kad pasiektume savo tikslą – atimkite du sąrašus Python . Skirtumą tarp dviejų sąrašų galime nustatyti daugiausia dviem skirtingais būdais. Pradėkime.

Naudojant rinkinys ()

Rinkinys yra kolekcijos tipo objektas, kuriame galima saugoti skirtingų duomenų tipų elementus. A rinkinys () neindeksuoja reikšmių tam tikra tvarka. Šis metodas aiškiai konvertuoja sąrašus į python rinkinius ir tada nustato skirtumą tarp jų. Čia pateikiamas programos pavyzdys, kad galėtumėte geriau suprasti.

def list_diff(my_list1, my_list2):

    return (list(set(my_list1) - set(my_list2)))

my_list1 = [10, 16, 21, 26, 31, 36, 41]

my_list2 = [10, 26, 41, 36]
print(list_diff(my_list1, my_list2))

Išvestis : [ 16 , dvidešimt vienas , 31 ]

The rinkinys () funkcija pirmiau pateiktoje programoje priėmė apibrėžtus du sąrašus ir pavertė juos rinkiniais. Viduje spausdinti () funkcija, ji tiesiog apskaičiavo skirtumą.

Naudojant įdėtą for-ciklą

Norėdami apskaičiuoti dviejų skirtingų sąrašų atimties vertę, galime tiesiog naudoti įdėtą kilpą.

Taikydami šį metodą, visus antrojo sąrašo elementus palyginsime su pirmuoju iš eilės, o eidami kiekvieną neatitinkantį elementą pridėsime prie naujo tuščio sąrašo.

Programos pabaiga, atspausdinsime sąrašą. Štai jums:

def list_diff(my_list1, my_list2):

    out = []

    for ele in my_list1:

    	if not ele in my_list2:

        	out.append(ele)

    return out

my_list1 = [10, 16, 21, 26, 31, 36, 41]

my_list2 = [10, 26, 41, 36]

print(list_diff(my_list1, my_list2))

Išvestis: [ 16 , dvidešimt vienas , 31 ]

Naudojant sąrašo supratimo metodas

Sąrašo supratimas yra toks pat metodas, kaip ir įdėtas for-ciklas. Čia mes pakeisime for-ciklą sąrašo supratimo sintaksė. Pavyzdžiui,

def list_diff(my_list1, my_list2):

    out = [item for item in my_list1 if not item in my_list2]

    return out

my_list1 = [10, 16, 21, 26, 31, 36, 41]

my_list2 = [10, 26, 41, 36]

print(list_diff(my_list1, my_list2))

Išvestis: [ 16 , dvidešimt vienas , 31 ]

Tikimės, kad baigę šią pamoką turėtumėte žinoti kelis būdus, kaip atimti du Python sąrašus. Tačiau, norėdami įgyti pasitikėjimo, galite praktikuoti daugiau pateikdami pavyzdžius.