Comment initialiser une liste en Python ?

青灯夜游
Libérer: 2019-03-19 12:00:08
original
15878 Les gens l'ont consulté

Python est un langage très flexible et peut effectuer une seule tâche de plusieurs manières, par exemple, une liste d'initialisation peut être exécutée de plusieurs manières. L'article suivant vous présentera plusieurs méthodes d'initialisation Python et comparera l'efficacité de ces méthodes. J'espère qu'il vous sera utile.

Comment initialiser une liste en Python ?

Ci-dessous, nous présenterons quelques méthodes d'initialisation d'une liste en Python (nous créons une liste de taille 1000 et l'initialisons à zéro).

Méthode 1 : Utilisation de la boucle for et append()

Nous pouvons créer une liste vide et utiliser la méthode append() pour transmettre le for Loop n fois pour ajouter des éléments à la liste.

arr = []
for i in range(1000):
    arr.append(0)
Copier après la connexion

Méthode 2 : utiliser la boucle while avec la variable counter et append()

C'est quelque peu similaire à la méthode 1, mais nous Utilisez une boucle while au lieu d'une boucle for.

arr = []
i = 0
while(i<1000):
    arr.append(0)
Copier après la connexion

Méthode 3 : Utiliser la compréhension de liste

La compréhension de liste est une méthode utilisée par les mathématiciens pour implémenter La manière pythonique d'étiqueter les collections est bien connu. Il se compose de crochets contenant une expression, suivie d'une clause for, suivie d'une clause if facultative.

L'expression peut être n'importe quel type d'objet que nous voulons mettre dans la liste ; puisque nous avons initialisé la liste avec zéro, notre expression ne sera que 0.

arr = [0 for i in range(1000)]
Copier après la connexion

Explication : la compréhension de liste peut être utilisée pour écrire du code efficace, et sa vitesse d'exécution est 35 % plus rapide que la boucle for.

Méthode 4 : Utiliser l'opérateur *

L'opérateur peut être utilisé comme [objet] * n, où n est le nombre d'éléments dans le tableau .

arr = [0]*1000
Copier après la connexion

Comparaison du temps d'exécution du code

Jetons un coup d'œil au temps d'exécution de ces quatre méthodes pour voir quelle méthode est la meilleure rapide.

Exemple : Nous calculerons le temps moyen que prend chaque méthode pour initialiser un tableau de 10 000 éléments 500 fois.

# 导入时间模块以计算时间
import time 
  
# 初始化列表以保存时间
forLoopTime = [] 
whileLoopTime = [] 
listComprehensionTime = [] 
starOperatorTime = [] 
  
# 重复此过程500次,并计算所用的平均时间。
for k in range(500):  
  
    # 开始时间
    start = time.time() 
    # 声明空列表
    a = [] 
    # 执行for循环10000次
    for i in range(10000): 
        a.append(0) 
    # 停止时间
    stop = time.time() 
    forLoopTime.append(stop-start) 
  
    # 开始时间
    start = time.time() 
    # 声明空列表
    a = [] 
    i = 0
    # 执行while循环10000次
    while(i<10000): 
        a.append(0) 
        i+= 1
    stop = time.time() 
    whileLoopTime.append(stop-start) 
  
    start = time.time() 
    # 使用列表推导(List Comprehension) 来初始化列表
    a = [0 for i in range(10000)]  
    stop = time.time() 
    listComprehensionTime.append(stop-start) 
  
  
    start = time.time() 
    # 使用*运算符
    a = [0]*10000 
    stop = time.time() 
    starOperatorTime.append(stop-start) 
  
  
  
print("for循环所用的平均时间:" + str(sum(forLoopTime)/100)) 
print("while循环所用的平均时间:" + str(sum(whileLoopTime)/100)) 
print("列表推导所用的平均时间:" + str(sum(listComprehensionTime)/100)) 
print("* 运算符所用的平均时间: " + str(sum(starOperatorTime)/100))
Copier après la connexion

Sortie :

Comment initialiser une liste en Python ?

Remarque : les délais varient en fonction de la plateforme sur laquelle ce code est exécuté. Ces temps ne sont utilisés que pour étudier les performances relatives de ces méthodes d'initialisation.

● On peut voir que le temps pris par les boucles for et while est presque le même.

● Les performances de compréhension de liste sont bien meilleures que celles des boucles for et while, la première est 3 à 5 fois plus rapide. Un autre exemple de cette différence peut être vu lorsque nous essayons de créer une liste de nombres de 1 à 1000. Utiliser une compréhension de liste est bien mieux que d’utiliser append().

a = [i for i in range(1,1001)]
Copier après la connexion

● L'utilisation de l'opérateur * est plus rapide que les autres, c'est ainsi que vous devez initialiser la liste

Recommandation du didacticiel vidéo associé : "Tutoriel Python"

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il pourra être utile à l'étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal