list1とlist2には違いがありますか?
違いの定義次第です。
python
1>>> list1 = [[None for _ in range(3)] for _ in range(3)]
2>>> list2 = [[None]*3 for _ in range(3)]
3>>> list1 == list2
4True
5>>> list1 is list2
6False
==で比べると違いはありませんが、isで比べると違いがあります。
list3とlist4も同じで、==で比べると違いはありませんが、isで比べると違いがあります。
python
1>>> list3 = [[None]*3]*3
2>>> list4 = [[None]*3 for _ in range(3)]
3>>> list3 == list4
4True
5>>> list3 is list4
6False
listの初期化をする際、なぜNoneを使うのでしょうか?
Noneを使う必要はありません。
余分なことかもしれませんが、以下のようなことも理解しておいた方がpythonが良くわかります。
python
1>>> a = -6
2>>> b = -6
3>>> a is b
4False
5>>> print(a)
6-6
7>>> print(b)
8-6
aには-6が入っていて、bには-6が入っていても、a is bは成り立っていません。
同じとか違うという言葉の意味をよく考えてみてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/12 15:44