[Mémo Python] Soyez prudent lors de la création d'un tableau à deux dimensions (liste de listes)

0. Problème

__ Les lignes (n1) et colonnes (n2) sont entrées dans la première ligne et n2 colonnes. Ou # sont entrées dans la deuxième ligne et les suivantes. Stockez les chaînes de caractères sur la deuxième ligne et les suivantes n1 dans un tableau à deux dimensions. __

1. 1. Des données d'entrée

Donnez les données d'entrée suivantes à titre d'exemple

3 5
#####
.#.#.
#.#.#

2. Exemple de code


#Entrez les lignes et les colonnes du tableau à créer séparées par des espaces
in1 = input()
arr1=in1.split()

#À côté de arr1 spécifié ci-dessus[1]La chaîne de caractères de la colonne est arr1[0]Lire le texte de la ligne
in2=[]
for i in range(int(arr1[0])):
    tmp1=input()
    in2.append(tmp1)
        
#Le tableau à deux dimensions suivant(arr1[0]Ligne arr1[1]Colonne)Créer
arr2=[[''] * int(arr1[1]) for i in range(int(arr1[0]))]
arr3=[['']*int(arr1[1])]*int(arr1[0])

#Afficher le tableau bidimensionnel défini ci-dessus
print(arr2)
print(arr3)

for i in range(int(arr1[0])):
    tmp2=in2[i]
    for j in range(int(arr1[1])):
        arr2[i][j]=tmp2[j:j+1]
        arr3[i][j]=tmp2[j:j+1]


print(arr2)
print(arr3)

3. 3. Résultat de sortie

[['', '', '', '', ''], ['', '', '', '', ''], ['', '', '', '', '']]
[['', '', '', '', ''], ['', '', '', '', ''], ['', '', '', '', '']]
[['#', '#', '#', '#', '#'], ['.', '#', '.', '#', '.'], ['#', '.', '#', '.', '#']]
[['#', '.', '#', '.', '#'], ['#', '.', '#', '.', '#'], ['#', '.', '#', '.', '#']]

Dans les première et deuxième lignes, les données de tableau bidimensionnelles initialisées sont affichées. Ce à quoi nous faisons attention, c'est la différence entre les résultats d'exécution des 3ème et 4ème lignes `__.

Les valeurs de tous les tableaux de arr3 ont été remplacées par les données de la dernière ligne d'entrée.

4. Vérification

Reportez-vous à Initialiser la liste Python (tableau) avec une valeur arbitraire / nombre d'éléments Ajoutez le code suivant au code ci-dessus.

print(arr2[0]==arr2[int(arr1[0])-1])
print(arr3[0]==arr3[int(arr1[0])-1])
False
True

Parce que la liste des éléments dans arr3 sont tous traités comme le même objet Il semble que lorsqu'une liste est mise à jour, les autres listes sont mises à jour avec le même contenu.

Conclusion

Lors de la déclaration d'un tableau à deux dimensions avec des valeurs initiales

Nom de la liste = [[Valeur initiale] * Nombre de colonnes pour la variable arbitraire dans la plage (nombre de lignes)]

utilisation.

Recommended Posts

[Mémo Python] Soyez prudent lors de la création d'un tableau à deux dimensions (liste de listes)
Un mémo lors de la création d'un environnement python avec miniconda
Soyez prudent lors de la différenciation des vecteurs propres d'une matrice
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
[Python] Soyez prudent lorsque vous utilisez print
[Python] Mémo de création de l'outil de grattage
Précautions lors de la création d'un générateur Python
Lors de la création d'une matrice dans une liste
Précautions lors de la création d'un tableau à deux dimensions avec toutes les mêmes valeurs
Faites attention à LANG pour UnicodeEncodeError lors de l'impression du japonais avec Python 3
Note addictive: max (max (list)) ne doit pas être utilisé lors de la maximisation de la valeur d'un tableau à deux dimensions
Afficher une liste d'alphabets en Python 3
[python] Obtenir une liste de variables d'instance
Soyez prudent lors de l'ajout d'un tableau à un tableau
[Python] Obtenir une liste de dossiers uniquement
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
Un mémo qui a fait un tutoriel pour exécuter python sur heroku
[python] Créer une liste de différents types de caractères
python Remarque: Traitez les listes collectivement comme un ensemble
Copiez la liste en Python
Réécrire des éléments dans une boucle de listes (Python)
Sortie sous la forme d'un tableau python
Notes sur la création d'un environnement python par les débutants
[Python] Manipulation d'éléments dans une liste (tableau) [Trier]
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
[Attention] Lors de la création d'une image binaire (1 bit / pixel), faites attention au format de fichier!
Mémo connecté à HiveServer2 d'EMR avec python
[Python] Manipulation des éléments dans la liste (tableau) [Ajouter / Supprimer]
Comment écrire un type liste / dictionnaire de Python3
Choses à noter lors de l'initialisation d'une liste en Python
Python: obtenir une liste de méthodes pour un objet
Regrouper par éléments consécutifs d'une liste en Python
expression canonique python ou mémo d'objet correspondant
Créer une liste lorsque la nomenclature est pour une certaine période de temps
Liste des modules python
Mémo de type Liste / Dictionnaire Python3
Une histoire que je voulais faire quand j'ai eu une liste de sessions d'étude avec Python
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment mélanger une partie de la liste Python (au hasard.shuffle)
Un mémo lorsque le visage est détecté avec Python + OpenCV rapidement
Obtenez le nombre d'éléments spécifiques dans la liste python
Discord's Python 1.5 ou version ultérieure, je ne parviens pas à obtenir la liste des membres
[Python] Un programme qui crée un tableau à deux dimensions en combinant des entiers
Comment développer dans un environnement virtuel Python [Memo]
Soyez prudent lorsque vous attribuez une série en tant que colonne aux pandas.
Comment obtenir une liste d'exceptions intégrées pour python
Python: créer un dictionnaire à partir d'une liste de clés et de valeurs
Un mémo que j'ai écrit une fonction de base en Python en utilisant la récurrence
Précautions à prendre lors de la construction d'un environnement PYTHON
Tourner un tableau de chaînes avec une instruction for (Python3)
Liste des bibliothèques à installer lors de l'installation de Python à l'aide de Pyenv
[Python3] Liste des sites auxquels j'ai fait référence lorsque j'ai lancé Python
Voici un résumé des choses qui pourraient être utiles pour traiter des nombres complexes en Python
Jeu de main Python (liste à deux dimensions)
Mémo Python (pour moi): Array
Résumé des opérations de liste Python3
La liste Python n'est pas une liste
Créer un tableau numpy python
Initialisation de tableau multidimensionnel de la liste
[Python] Copie d'une liste multidimensionnelle