1

私は Python の初心者で、現在 Zed Shaw のコース「Learn Python the Hardway」を受講しています。

したがって、演習 32 では、次のように説明されています。

2 次元 (2D) リストを作成するにはどうすればよいですか? これは、[[1,2,3],[4,5,6]] のようなリスト内のリストです。

これは私がしました:

# Extra 1
global_list = [[1, 2, 3]]
inside_list = []
for i in global_list[0]:
    inside_list.append(i)

global_list.append(inside_list)
print(global_list)

しかし、それが正しい方法であると完全に確信しているわけではありません。私の質問は: for i in.... ループを離れることなく同じ結果を得る方法はありますか?

私もこれを試しましたが、役に立ちませんでした。

global_list = [[1, 2, 3]]
inside_list = []
for i in global_list[0]:
    inside_list.append(i)
    global_list.append(inside_list)
    print(global_list)

ご回答ありがとうございます。

4

3 に答える 3

1

あなたがすでにリスト内包を超えたかどうかはわかりません。ただし、実行していることを実行するための1つの優れた方法は次のとおりです。

>>> global_list = [[1,2,3]]

>>> global_list.append([i + 3 for i in global_list[0]])

>>> print global_list

[[1, 2, 4], [4, 5, 6]]
于 2013-02-27T04:17:08.733 に答える
1

リストは、他のオブジェクトと同じようにリストに追加および挿入できます。たとえば、次のようになります。

outer_list = []
print(outer_list)
inner_list1 = [1, 2, 3]
outer_list.append(inner_list1)
print(outer_list)
inner_list2 = [4, 5, 6]
outer_list.append(inner_list2)
print(outer_list)
于 2013-02-27T03:53:13.623 に答える
0

出題は「二次元(2D)リストはどうやって作るの?」。与えられた答えは、「それは次のようなリストの中のリストです: [[1,2,3],[4,5,6]]」でした。文字通り、それが答えです:

>>> a = [[1, 2, 3], [4, 5, 6]]
>>> print a
[[1, 2, 3], [4, 5, 6]]

これを行うこともできます:

>>> a = [[1, 2, 3]]
>>> a.append([4, 5, 6])
>>> a
[[1, 2, 3], [4, 5, 6]]

別のリスト内にリストを追加するために for ループは必要ありません。

>>> a = [[1, 2, 3]]
>>> a[0]
[1, 2, 3]
>>> a.append(a[0])
>>> a
[[1, 2, 3], [1, 2, 3]]

ただし、これにより、リストのリストの 2 番目の要素が最初の要素と同じになるため、一方を変更すると、もう一方も変更されます。

>>> a[0] is a[1]
True
>>> a[0][0] = 4
>>> a
[[4, 2, 3], [4, 2, 3]]

リストのコピーを作成するためにできることは次のとおりですlist(a[0])

>>> a = [[1, 2, 3]]
>>> a[0]
[1, 2, 3]
>>> a[0] is a[0]
True
>>> list(a[0])
[1, 2, 3]
>>> a[0] is list(a[0])
False
>>> a.append(list(a[0]))
>>> a
[[1, 2, 3], [1, 2, 3]] 
>>> a[0] is a[1]
False
>>> a[0][0] = 4
>>> a
[[4, 2, 3], [1, 2, 3]]
于 2013-02-27T03:51:27.763 に答える