Sankryža
Prieš pradedant šią pamoką, bus paaiškinta sankryžos sąvoka. Toliau pateikiami du pavyzdžiai:
1 sąrašas = [4, 7, 23, 9, 6, 11]2 sąrašas = [6, 5, 1, 20, 9, 7, 4, 3]
Pritaikius sankryžą, jei rezultatas bus saugomas kitame sąraše, galbūt pavadintame „List3“, tada jame bus šie duomenys.
3 sąrašas = [4, 6, 7, 9]Žemiau parodytas grafinis 3 sąrašo vaizdas:
1 pavyzdys: susikertantys sąrašai naudojant set () metodą
Šis pavyzdys rodo, kaip galite susikirsti du sąrašus naudodami rinkinys () metodas ir & operatorius. Čia deklaruojami du sąrašai, pavadinti „list1“ ir „list2“. Abiejuose šiuose sąrašuose yra skaitinės vertės. Trečiasis sąrašas generuojamas konvertuojant sąrašą1 ir 2 sąrašą į rinkinį per rinkinį() metodas ir sankirtos taikymas naudojant & operatorius. Tada atspausdinamos trijų sąrašų vertės.
#!/ usr / bin / env python3# Apibrėžkite sąrašą1
sąrašas1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Apibrėžkite sąrašą2
sąrašas2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Sukurkite sąrašą3 susikertant sąrašą1 ir sąrašą2
list3 = sąrašas (rinkinys (sąrašas1) ir rinkinys (sąrašas2))
# Spausdinimo sąrašas
spausdinti ("List1 reikšmės: \ n", list1)
# Spausdinti sąrašą2
spausdinti ("2 sąrašo reikšmės: \ n", 2 sąrašas)
# Spausdinti sąrašą3
spausdinti ("3 sąrašo reikšmės susikertant sąrašą1 ir sąrašą2: \ n", sąrašas3)
Rezultatas
Ši išvestis pasirodys paleidus scenarijų. Trys vertybės yra bendros abiem sąrašams. Šios vertės yra 8, 9 ir 20, ir jos rodomos trečiojo sąrašo turinyje.
2 pavyzdys: susikertantys sąrašai per sankirtos () metodą
Sąrašo objektui nėra tiesioginio integruoto metodo, leidžiančio sužinoti dviejų sąrašų sankirtos vertes. Tačiau rinkinyje yra įmontuotas metodas, pavadintas sankryža (), išsiaiškinti bendras aibių vertybes. Pasirinktinė funkcija, pavadinta sankirtos sąrašai (), yra apibrėžtas šiame scenarijuje, kad sužinotumėte bendras dviejų sąrašų reikšmes. Vienas šio rinkinio apribojimas yra tas, kad jame gali būti tik skaitiniai duomenys. Sąrašo kintamajame gali būti įvairių tipų duomenų eilutės, įskaitant skaitines, logines ir kt. Scenarijuje, sąrašas1 ir sąrašas2 yra visi eilutės duomenys, įskaitant ir tekstą. Scenarijus atspausdins visas eilutes ir skaitines reikšmes tarp jų sąrašas1 ir sąrašas2.
#!/ usr / bin / env python3# Apibrėžkite funkciją, kad būtų grąžinta dviejų sąrašų sankirta
def intersectLists (sąrašas1, sąrašas2):
grąžinimo rinkinys (sąrašas1).sankryža (2 sąrašas)
# Apibrėžkite sąrašą1
list1 = ['Sveiki', '7', '8', '10', '2']
# Apibrėžkite sąrašą2
list2 = ['8', '34', 'Sveiki', '2', '21', '1', 10]
"Norėdami išsaugoti, iškvieskite pasirinktinę funkciją
1 ir 2 sąrašo sankirtos rezultatas
į sąrašą3 "
list3 = intersectLists (sąrašas1, sąrašas2)
# Spausdinimo sąrašas
spausdinti ("List1 reikšmės: \ n", list1)
# Spausdinti sąrašą2
spausdinti ("2 sąrašo reikšmės: \ n", 2 sąrašas)
# Spausdinti sąrašą3
spausdinti ("3 sąrašo reikšmės susikertant sąrašą1 ir sąrašą2: \ n", sąrašas3)
Rezultatas
Ši išvestis pasirodys paleidus scenarijų. Čia bendros reikšmės tarp dviejų sąrašų yra „2“, „8“ ir „Labas“."
3 pavyzdys: susikertantys sąrašai per ciklo metodą
Ankstesni du pavyzdžiai rodo sąrašo susikirtimą naudojant įmontuotas funkcijas. Šis pavyzdys rodo sąrašo sankirtą be jokios integruotos funkcijos. Tai galima pasiekti naudojant kilpą. Scenarijuje deklaruojami du tekstinių duomenų sąrašai. The dėl ciklas naudojamas čia norint sužinoti bendras teksto reikšmes tarp sąrašas1 ir sąrašas2, ir kurios saugomos kintamajame, sąrašas3. Tada atspausdinamos šių trijų sąrašo kintamųjų vertės.
#!/ usr / bin / env python3# Apibrėžkite sąrašą1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Apibrėžkite sąrašą2
list2 = ['Meena', 'Moyna', 'Nobelis', 'Naher', 'Abiras', 'Farheen']
# Raskite sankryžą naudodami „loop“ ir išsaugokite rezultatą sąraše3
list3 = [vertės reikšmė sąraše1, jei vertė sąraše2]
# Spausdinimo sąrašas
spausdinti ("List1 reikšmės: \ n", list1)
# Spausdinti sąrašą2
spausdinti ("2 sąrašo reikšmės: \ n", 2 sąrašas)
# Spausdinti sąrašą3
spausdinti ("3 sąrašo reikšmės susikertant sąrašą1 ir sąrašą2: \ n", sąrašas3)
Rezultatas
Ši išvestis pasirodys paleidus scenarijų. Čia pateikiamos bendros dviejų sąrašų teksto vertės „Abiras“ ir - Meena."
4 pavyzdys: susikertantys paprasti ir įdėti sąrašai naudojant filtro () metodą
Šis pavyzdys parodo susikirtimą tarp paprasto sąrašo ir įdėtųjų sąrašų. The filtras() metodas ir lambda Funkcija scenarijuje naudojama sankryžai tarp sąrašo1 ir sąrašo2 atlikti. Kai sąraše yra vienas ar keli sąrašai kaip sąrašo elementai, sąrašas vadinamas lizdiniu sąrašu. Čia, sąrašas1 yra paprastas sąrašas ir sąrašas2 yra įdėtas sąrašas, o sąrašas3 yra sankirtos vertės sąrašas1 ir sąrašas2.
#!/ usr / bin / env python3# Apibrėžkite paprastą sąrašą
sąrašas1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Apibrėžkite įdėtą sąrašą
sąrašas2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Sukurkite sąrašą3 susikertant sąrašą1 ir sąrašą2 naudodami filtrą ()
list3 = [sąrašas (filtras (lambda n: n 1 sąraše, slistas)) 2 sąrašo sąrašui]
# Spausdinimo sąrašas
spausdinti ("List1 reikšmės: \ n", list1)
# Spausdinti sąrašą2
spausdinti ("2 sąrašo reikšmės: \ n", 2 sąrašas)
# Spausdinti sąrašą3
spausdinti ("3 sąrašo reikšmės susikertant sąrašą1 ir sąrašą2: \ n", sąrašas3)
Rezultatas
Ši išvestis pasirodys paleidus scenarijų. „List2“ kintamajame yra dar trys sąrašai kaip sąrašo elementai. Taigi rezultatas parodo šių trijų sąrašo 2 antrinių sąrašų susikirtimą su sąrašu1.
Išvada
Sąrašų sankirta yra naudingas būdas rasti bendras reikšmes tarp sąrašų, kuriuose yra daug sąrašo elementų. Sąrašo sankirtos su įmontuotomis funkcijomis ir be jų atlikimo būdai parodyti šioje pamokoje. Perskaičius šį straipsnį, sąrašo sankirtos sąvoka turėtų būti aiški, ir jūs turėtumėte sugebėti taikyti sąrašo sankirtą savo scenarijuje, laikydamiesi bet kokio šios mokymo programos nurodyto būdo.