Kuinka yhdistää kaksi listaa Pythonissa
Johdanto
listaa yhteislistan luominen useista pienemmistä listoista ketjuttamalla ne yhteen.
Pythonissa on monia tapoja yhdistää luetteloita. Erityisesti, tässä artikkelissa, käymme läpi miten yhdistää kaksi listaa Python käyttäen plus operaattori, Pura operaattori, moninkertaistaa operaattori, manuaalinen silmukka concatenation, itertools.chain()
funktio ja sisäänrakennettu luettelo menetelmä extend()
.
kaikissa alla olevissa koodinpätkissä käytetään seuraavia luetteloita:
list_a = list_b =
Plus Operator List Concatenation
yksinkertaisin ja suoraviivaisin tapa yhdistää kaksi listaa Pythonissa on plus (+
) operaattori:
list_c = list_a + list_bprint (list_c)
unpack Operator list concatenation
tällä menetelmällä voi liittyä useisiin listoihin. Se on melko uusi ominaisuus ja saatavilla vain Python 3.6+. Purkaja purkaa nimensä mukaisesti iterable
objektin elementteihinsä. Purkamisesta on hyötyä, kun haluamme luoda lukuisia argumentteja yhdestä listasta. Esimerkiksi:
def foo(a, b, c, d): return a + b + c + d# We want to use the arguments of the following list with the foo function.# However, foo doesn't take a list, it takes 4 numbers, which is why we need to# unpack the list.foo(*list_a)# This is the same as if we were to call foo(1,2,3,4)
10
pähkinänkuoressa käytetään luettelon konstruktoria () ja luodaan uuden listan elementit järjestyksessä purkamalla useita luetteloita yksi toisensa jälkeen:
list_c = # This is the same as:# list_c = print (list_c)
Multiply Operator List Concatenation
the multiply (*
Sitä käytetään kokonaisen luettelon toistamiseen useita kertoja (minkä vuoksi se merkitään kertolaskuoperaattorilla):
print(list_a * 2)
silmukkaluettelon Konsatenoinnissa
tässä menetelmässä käydään läpi yksi lista ja liitetään jokainen sen alkioista toiseen listaan yksitellen. Kun silmukka on ohi, sinulla on yksi lista, jossa on kaikki halutut elementit:
for i in list_b: list_a.append(i)print (list_a)
itertools.ketjut () – Listan Konsekutenointi
tämä menetelmä toimii iterables
. Se rakentaa ja palauttaa iteraattorin, jolla voidaan myöhemmin rakentaa ketjutettu lista (ajattele sitä nuolena, joka vain muistaa alkioiden järjestyksen tuloksena olevassa luettelossa):
# If we were to call itertools.chain() like soiterator = itertools.chain(, )# Basically the iterator is an arrow which can give us the next() element in a sequence, so if we call a list() constructor with said iterable, it works like this:list(iterator)
konepellin alla tapahtuu:
# Iterator: The next element in this list is 1 , ^# Iterator: The next element in this list is 2, ^# Iterator: The next element in this list is 3 , ^# Iterator: The next element in this list is 4 , ^# So the list() call looks something like:list()# Keep in mind this is all pseudocode, Python doesn't give the developer direct control over the iterator
tätä menetelmää varten on tuotava itertools
:
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
extend() List Concatenation
Tämä on AA built-it-funktio, jolla voidaan laajentaa luetteloa. Tässä laajennamme ensimmäistä listaa lisäämällä siihen toisen listan elementtejä:
list_a.extend(list_b)print (list_a)