[Python] Liste des principales méthodes destructives pour les opérations de liste (ajout / suppression / tri)

[Python] Liste des principales méthodes destructives pour les opérations de liste (ajout / suppression / tri)

Une liste des principales méthodes destructives (écrasant les données d'origine).

** <Ajouter un élément> **

  1. [insert](méthode #insert)
  2. [append](méthode #append)
  3. [extend](méthode #extend)
  4. [Ajouter par tranche](#Ajouter par tranche)
  5. [Add element](#Add element)
  6. Remplacer

** <Supprimer l'élément> ** 5. [remove](méthode #remove) 6. [pop](méthode #pop) 7. [clear](méthode #clear) 8. [instruction del](instruction #del)

  1. [Supprimer en spécifiant le numéro d'index](#Supprimer en spécifiant le numéro d'index)
  2. [Supprimer en spécifiant une plage](#Supprimer en spécifiant une plage)
  3. [Supprimer tout](# Supprimer tout)

** ** 9. [sort](méthode #sort)

  1. [Tri croissant](# tri croissant)
  2. [Tri décroissant](# Tri décroissant)
  3. [reverse](méthode #reverse)

** <Supplément> ** 11. [Notes sur les méthodes destructives](#Notes sur les méthodes destructives) 12. [Exemple de méthode destructive](# Exemple de méthode destructive)


## méthode d'insertion Insérez la valeur en spécifiant le numéro d'index.

insert x y └ Insérez y au numéro d'index x. └ x est un entier └ Si vous spécifiez un numéro d'index au-dessus (ou en dessous) de l'élément d'origine, il sera ajouté à la fin (début).

python


a = [1,2,3]

#Ajouter «10» au 0e
a.insert(0,10)
print(a)

#production
[10, 1, 2, 3]

** ▼ Si vous spécifiez un numéro d'index qui n'existe pas **

python


a = [1,2,3]

#Ajout de "20" au 10
a.insert(10,20)
print(a)

#production
[1, 2, 3, 20]

Bien que le numéro d'index 10 soit spécifié, il est ajouté à la fin car le maximum de la liste cible est inférieur à 10.

** ▼ Lorsqu'un numéro d'index inexistant est spécifié (moins) **

python


a = [1,2,3]

#-Ajout de "30" au 10
a.insert(-10,30)
print(a)

#production
[30, 1, 2, 3]

## méthode d'ajout Ajoutez un élément à la fin. (Ajouter comme un morceau)

ʻAjouter (valeur à ajouter) `

python


a=[1,2,3]

a.append('a')
print(a)

##production
[1, 2, 3, 'a']

** ▼ Les chaînes de caractères et les tableaux sont entrés sous forme de blocs. (* Différence par rapport à l'extension) **

Chaîne


a=[1,2,3]

a.append("abcde")
print(a)

##production
[1, 2, 3, 'abcde']

list


a=[1,2,3]
b=[4,5,6]

a.append(b)
print(a)

##production
[1, 2, 3, [4, 5, 6]]

** ▼ Je ne peux pas m'ajouter (* Différence par rapport à l'extension) **

list


a=[1,2,3]

a.append(a)
print(a)

#production
[1, 2, 3, [...]]

** ▼ Lorsque l'objet parent est plus grand d'une dimension **

list


a=[[1,2,3]]
b=[4,5,6]

a.append(b)
print(a)

#production
[[1, 2, 3], [4, 5, 6]]

Cela devient la même dimension.


## étendre la méthode Ajoutez un élément à la fin. (Ajouter un caractère à la fois)

ʻExtend (élément à ajouter) ` └ Ajoutez un caractère à la fois └ La chaîne de caractères est décomposée

Liste unidimensionnelle


a=[1,2,3]
b=[4,5,6]

a.extend(b)
print(a)

#production
[1, 2, 3, 4, 5, 6]

Chaîne


a=[1,2,3]

a.extend("abcde")
print(a)

#production
[1, 2, 3, 'a', 'b', 'c', 'd', 'e']

** ▼ Vous pouvez vous ajouter (* Différence d'ajout) **

python


a=[1,2,3]

a.extend(a)
print(a)

#production
[1, 2, 3, 1, 2, 3]

** ▼ Combinez en morceaux pour multidimensionnel **

python


a=[1,2,3]
b=[[4,5,6],[7,8,9]]

a.extend(b)
print(a)

#production
[1, 2, 3, [4, 5, 6], [7, 8, 9]]

Deux dimensions


a=[[1,2,3]]
b=[[4,5,6],[7,8,9]]

a.extend(b)
print(a)

#production
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

## Ajouter avec tranche Bien que ce ne soit pas une méthode, il est également possible de spécifier une plage avec une tranche et de l'insérer.

■ Propriétés qui ont à la fois étendre et ajouter ・ Ajouter au même niveau ・ Ajouter en morceaux (ne pas décomposer caractère par caractère)

Ajouter un élément

list [x: x] = élément à ajouter └ x: numéro d'index que vous souhaitez ajouter └ Spécifiez la même plage pour la plage de tranches * S'ils sont différents, le remplacement aura lieu.

Le numéro d'index 1 est "'aaa','bbb'"Ajouter


a=[1,2,3]

a[1:1]=['aaa','bbb']
print(a)

#production
[1, 'aaa', 'bbb', 2, 3]

** ▼ Un numéro d'index négatif peut être spécifié **

moins


a=[1,2,3]

a[-1:-1]=['aaa','bbb']
print(a)

#production
[1, 2, 'aaa', 'bbb', 3]

A partir du dernier élément, il devient 0, -1, -2 ,,,.


** ▼ Désignation hors de la plage ** ・ S'il est plus grand du côté positif, ajoutez-le à la fin. ・ S'il est grand du côté négatif, ajoutez-le au début.

Hors de la gamme plus


a=[1,2,3]

a[10:10]=['aaa','bbb']
print(a)

#production
[1, 2, 3, 'aaa', 'bbb']

En dehors de la plage négative


a=[1,2,3]

a[-10:-10]=['aaa','bbb']
print(a)

#production
['aaa', 'bbb', 1, 2, 3]

Remplacer

list [x: y] = élément à ajouter └ Remplacez la plage de x à y-1. └ y n'est pas inclus

** ▼ Remplacer le nième élément ** list[n:n+1]

Remplacement du numéro d'index 2


a=[1,2,3,4,5,6,7]

a[2:3]=['aaa','bbb']
print(a)

##production
[1, 2, 'aaa', 'bbb', 4, 5, 6, 7]

** ▼ Remplacer tous ensemble **

Tout remplacer en même temps


a=[1,2,3,4,5,6,7]

a[0:5]=['aaa','bbb']
print(a)

##production
['aaa', 'bbb', 6, 7]

Remplacez la plage 0-4.


** ▼ Lorsque hors de portée est spécifié **

python


a=[1,2,3,4,5,6,7]

a[0:10]=['aaa','bbb']
print(a)

#production
['aaa', 'bbb']

** ▼ Lorsque hors de portée est spécifié 2 **

python


a=[1,2,3,4,5,6,7]

a[10:20]=['aaa','bbb']
print(a)

#production
[1, 2, 3, 4, 5, 6, 7, 'aaa', 'bbb']

** ▼ Tout remplacer **

python


a=[1,2,3,4,5,6,7]

a[:]=['aaa','bbb']
print(a)

#production
['aaa', 'bbb']

## supprimer la méthode Spécifiez une valeur pour supprimer le premier élément.

supprimer └ S'il y en a plusieurs, ** seul le premier élément ** est supprimé └ La valeur inexistante est une erreur

python


a = [1,2,3]

a.remove(1)
print(a)

#production
[2, 3]

** ▼ Lorsqu'il y a plusieurs valeurs spécifiées **

python


a = [1,2,3,1,2,3,1,2,3]

a.remove(2)
print(a)

#production
[1, 3, 1, 2, 3, 1, 2, 3]

Supprimez uniquement le premier élément.


## méthode pop Supprimez en spécifiant le numéro d'index.

pop (numéro d'index) └ Supprimer la valeur du numéro d'index correspondant └ Les nombres en dehors de la plage sont des erreurs

python


a = [1,2,3]

a.pop(2)
print(a)

#production
[1, 2]

Numéro d'index 2 supprimé (valeur 3).

▼ Erreur en dehors de la plage

python


a = [1,2,3]

a.pop(-10)
print(a)

#production
IndexError: pop index out of range

## méthode claire `clear()` └ Support requis └ Aucun argument * Erreur s'il y a un argument

python


a = [1,2,3]

a.clear()
print(a)

##production
[]

Tout le contenu disparaît. Le conteneur (variable) reste.

déclaration del

Bien que ce ne soit pas une méthode pour la liste, les éléments peuvent être supprimés avec l'instruction del.

del objet de la liste [numéro d'index] └ Numéro d'index spécifié par tranche

▼ Supprimer en spécifiant le numéro d'index

python


a=[1,2,3]

del a[0]
print(a)

##production
[2, 3]

Identique à la méthode pop.

▼ Supprimer en spécifiant une plage

[Valeur de départ: valeur de fin] └ La valeur finale n'est pas supprimée. (Moins que)

Numéro 3~Retirer 4 (5 non inclus)


b=[1,2,3,4,5,6,7,8,9]

del b[3:5]
print(b)

##production
[1, 2, 3, 6, 7, 8, 9]

▼ Tout supprimer

Spécifiez la plage entière «[:]» dans la tranche.

python


a=[1,2,3]

del a[:]
print(a)

##production
[]

Identique à la méthode claire.


## méthode de tri

Tri croissant

sort() └ Par défaut (inverse = Faux) └ Aucun argument requis * Erreur si saisie

Tri croissant


a=[4,2,10,-10]

a.sort()
print(a)

##production
[-10, 2, 4, 10]

Alphabet


a=[]
a.extend("egkacb")

a.sort()
print(a)

##production
['a', 'b', 'c', 'e', 'g', 'k']

Tri décroissant

sort(reverse=True) └ Spécifiez "reverse = True" comme option

Tri décroissant


a=[4,2,10,-10]

a.sort(reverse=True)
print(a)

##production
[10, 4, 2, -10]

## méthode inverse Inversez les éléments de la liste. * Différent du tri descendant

Inversion numérique


a=[4,2,10,-10]

a.reverse()
print(a)

##production
[-10, 10, 2, 4]

Inversion de l'alphabet


a=[]
a.extend("egkacb")

a.sort()
print(a)

##production
['b', 'c', 'a', 'k', 'g', 'e']

## Précautions pour les méthodes destructives ** Ne peut pas être affecté à une variable. ** **

Parce que vous modifiez l'objet d'origine. Par exemple -A.append () fait référence à "a" lui-même. -Il n'existe pas de "a.append ()".

n'existe pas


a = [1,2,3]

b = a.append(4)
print(b)

##production
None

Puisque la variable inexistante est affectée à la variable b, le contenu de b est Aucun.

Si vous souhaitez ajouter plus d'éléments, jouez à nouveau avec un lui-même.


## Exemple de méthode destructrice

▼ Question Lorsqu'un élément parmi insérer, imprimer, supprimer, ajouter, trier, pop, inverser est entré, le processus correspondant est exécuté.

--insert a b: Insère la valeur b au numéro d'index a. --remove a: supprime la première valeur a. --append a: ajoute la valeur a à la fin. --pop a: Supprime la valeur du numéro d'index a --sort: tri croissant. --reverse: liste inversée --print: sortie

URL

▼sample input

python


12 #Nombre de commandes à saisir
insert 0 5
insert 1 10
insert 0 6
print
remove 6
append 9
append 1
sort
print
pop
reverse
print

▼sample output

python


[6, 5, 10]
[1, 5, 9, 10]
[9, 5, 1]

▼answer1

python


if __name__ == '__main__':
    n = int(input())
    lists = [input() for _ in range(n)]

    arr=[]
    for i in lists:
        arr.append(i.split())
    
    res=[]
    for j in arr:
        
        if len(j) >= 2:
            a=int(j[1])
        
        if len(j) >=3:
            b=int(j[2])
        
        #Chaque processus
        if j[0]=="insert":
            res.insert(a, b)
        
        if j[0]=="print":
            print(res)
            
        if j[0]=="remove":
            res.remove(a)
            
        if j[0]=="append":
            res.append(a)
            
        if j[0]=="sort":
            res.sort()
            
        if j[0]=="reverse":
            res.reverse()
            
        if j[0]=="pop":
            res.pop()
ans=res

▼answer2 (with eval method)

python


n = int(input())
l = []
for _ in range(n):
    s = input().split()
    cmd = s[0]
    args = s[1:]
    if cmd !="print":
        #Créez une partie d'argument avec une chaîne de caractères et combinez-la avec cmd
        cmd += "("+ ",".join(args) +")"
        
        #Exécuter l'expression (chaîne de caractères entre parenthèses)
        eval("l."+cmd)
    else:
        print (l)

・ ʻEval ("expression") ` └ Mettez une expression dans l'argument * Pas une déclaration

Exécute l'expression de la chaîne de caractères donnée par l'argument. ・ Exemple: eval ("list.insert (2,5)")


Recommended Posts

[Python] Liste des principales méthodes destructives pour les opérations de liste (ajout / suppression / tri)
Liste des opérations de base de Python3 list, tapple, dictionnaire, set
[Python] Opération d'énumération
Liste des modules python
Python: obtenir une liste de méthodes pour un objet
Résumé des opérations de liste Python3
Fonctionnement du filtre (Aucun, liste)
[Python] Mémo d'opération de pandas DataFrame
À propos de la liste de base des bases de Python
[Introduction à Udemy Python3 + Application] 18. Méthode List
[Introduction à l'application Udemy Python3 +] 17. Opération de liste
[python] Obtenir une liste de variables d'instance
Grammaire de base de la série Python3 (liste, tapple)
Résumé de l'utilisation de la liste Python
[Python] Obtenir une liste de dossiers uniquement
Mémorandum du processus de suppression de chaîne python