A Pythonban a karakterlánc karakterek sorozata, a lista pedig olyan elemek gyűjteménye, amelyek bármilyen adattípusúak lehetnek, beleértve a karakterláncokat is. Kivonás egy karakterlánclista eleme magában foglalja a kettő között közös elemek eltávolítását listákon vagy húrok .
Egy karakterlánclista kivonásához a másikból használhatja a 'készlet' adattípus Pythonban. A készlet adattípus egyedi elemek rendezetlen gyűjteménye. A kivonás operátora '-' két halmaz között használható az első halmaz azon elemeinek megkeresésére, amelyek a második halmazban nincsenek meg.
Példa:
Íme egy példa egy karakterlánc-lista kivonására a másikból a beállított adattípus használatával:
list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = list(set(list1) - set(list2)) print(result)
Kimenet:
típus konvertálás és öntés java-ban
['apple', 'cherry']
A fenti példában két listát határozunk meg, 'lap1' és 'lista2' . Ezt követően az egyes listákat a 'készlet' függvény Pythonban. Ezt követően használjuk a '-' operátort az elemeinek kivonásához 'lista2' tól től 'lap1' . Végül a kapott halmazt a 'lista' függvény Pythonban.
Ez egy új listát eredményez 'eredmény' amely elemeit tartalmazza 'lap1' amelyek nincsenek benne 'lista2' , amelyek jelen esetben azok 'alma' és 'cseresznye' .
Példa:
Íme egy másik példa, amely bemutatja, hogyan lehet kivonni a karakterláncok listáját egyetlen karakterláncból:
string1 = 'Hello world!' list1 = ['o', 'l', 'd'] result = ''.join([char for char in string1 if char not in list1]) print(result)
Kimenet:
kétdimenziós tömbprogram a c
'He wr!'
A fenti példában definiálunk egy karakterláncot 'string1' és a húrok listája 'lap1' . Ezt követően a lista megértését használjuk az egyes karakterek ismétlésére 'string1' és ellenőrizze, hogy benne van-e 'lap1' . Ha a karakter nincs benne 'lap1' , hozzáadjuk egy új listához a segítségével 'csatlakozik' módszer. Végül a kapott listát visszaalakítjuk egy karakterláncra.
Ez egy új karakterláncot eredményez 'eredmény' amely csak a karaktereit tartalmazza 'string1' amelyek nincsenek benne 'lap1' , amelyek jelen esetben azok 'H', 'e', ' ', 'w' , és 'r' .
Érdemes megjegyezni, hogy az eredményül kapott listában vagy karakterláncban előfordulhat, hogy az elemek sorrendje nem marad meg. Ha meg kell őriznie a sorrendet, használhatja a lista megértését egy 'ha' utasítással kiszűrheti a második listában szereplő elemeket.
melyik évben találták fel a számítógépet
Példa:
list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = [item for item in list1 if item not in list2] print(result)
Kimenet:
['apple', 'cherry']
A fenti példában két listát határozunk meg, 'lap1' és 'lista2' . Ezt követően egy listaértést használunk az egyes elemek áttételére 'lap1' és ellenőrizze, hogy benne van-e 'lista2' . Ha az elem nincs benne 'lista2' , hozzáadjuk egy új listához. Végül kinyomtatjuk az eredményül kapott listát, amely tartalmazza az elemeit 'lap1' amelyek nincsenek benne 'lista2' .
Néhány egyéb információ:
Beállítás vs lista adattípusok:
Mint korábban említettük, a karakterlánclisták kivonásakor ajánlatos a listákat halmazokká alakítani. Ez azért van így, mert a készletek az elemek meglétének ellenőrzésére és az ismétlődések eltávolítására vannak optimalizálva. Ha azonban fontos az elemek sorrendjének megőrzése, akkor érdemesebb inkább a listaértést használni.
Teljesítményre vonatkozó szempontok:
A listák halmazokká konvertálása számításigényes művelet lehet, különösen nagy listák esetén. Ha a teljesítmény aggodalomra ad okot, fontolóra veheti az alternatív megközelítések használatát, például a lista megértését vagy a generátor kifejezést.
kaki
Változékonyság:
Fontos megjegyezni, hogy a készletek változékony , míg a húrok és sorok (amelyek iterálható adattípusként is használhatók) nem. Ez azt jelenti, hogy ha kivonunk egy halmazt egy másik halmazból, a kapott halmaz a következő változékony , és módosíthatja a tartalmát. Másrészt, ha egy listát vagy tuple-t kivonunk egy másik listából vagy sorból, az eredményül kapott lista vagy tuple nem változtatható, és nem módosíthatja a tartalmát.
Beágyazott listák:
Ha beágyazott listákkal dolgozik, előfordulhat, hogy beágyazott hurkot vagy rekurziót kell használnia, hogy kivonja az egyik listát a másikból. Íme egy példa:
list1 = [['apple', 'banana'], ['cherry', 'orange']] list2 = [['banana', 'kiwi'], ['cherry', 'pear']] result = [] for sublist1, sublist2 in zip(list1, list2): subresult = [item for item in sublist1 if item not in sublist2] result.append(subresult) print(result)
Kimenet:
[['apple'], ['orange']]
A fenti példában két egymásba ágyazott listát definiálunk, 'lap1' és 'lista2' . Ezt követően egy for ciklust használunk az egyes allistapárok iterálásához 'lap1' és 'lista2' . Listaértelmezést használunk az egyes részlisták elemeinek kivonására 'lista2' a megfelelő allistáról levél1' . Végül a kapott allistákat hozzáfűzzük egy új listához 'eredmény' .