Katakanlah saya punya:

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

Sekarang saya ingin membuat daftar daftar dari a dan b, saya akan melakukannya seperti ini:

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

Karena a.append(b) akan menghasilkan: [1,2,3,b]=[1,2,3,[4,5,6]]

Sekarang katakanlah ada daftar baru yang ingin saya tambahkan ke c:

d=[7,8,9]

Saya sekarang harus melakukan c.append(d) untuk mendapatkan [[1,2,3],[4,5,6],[7,8,9]]

Karena

e=[c,d]=[[[1,2,3],[4,5,6]],[7,8,9]]

Bagaimana saya bisa mendapatkan daftar daftar dari daftar individu tanpa mengetahui bagaimana daftar saya disusun?

4
sebko_iic 5 Januari 2021, 12:12

3 jawaban

Jawaban Terbaik

Dua tindakan yang Anda gambarkan jelas berbeda. Yang pertama adalah membuat daftar luar (alias c) dan yang kedua menambahkannya.

Untuk membuat prosesnya lebih seragam, Anda bisa memulai dengan daftar luar dan menambahkan semua daftar anak ke dalamnya.

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

c.append(a)
c.append(b)
c.append(d)

C sekarang

[[[1,2,3],[4,5,6]],[7,8,9]]
1
Paul Rooney 5 Januari 2021, 09:54

Coba ini:

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

c.append(a)
c.append(b)

Ini harus bekerja, dan hanya membutuhkan 2 baris sederhana.

2
The Pilot Dude 5 Januari 2021, 09:26

Agak memutar tapi terlihat bagus, menggunakan numpy

a = np.array([[1,2,3]])
b = np.array([[4,5,6]])
c = np.append(a,b,axis=0)
print(c.tolist())

Memberi anda

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

Menambahkan daftar lain dengan cara yang sama menjaga struktur daftar daftar, misalnya

d = np.array([[7,8,9]])
e = np.append(c,d,axis=0)
print(e.tolist())

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

Sekarang ini cukup bundaran. Saya hanya akan menyimpan semuanya dalam array numpy jika memungkinkan.

EDIT: Menemukan cara melakukan ini tanpa numpy

Cukup nyatakan setiap daftar sebagai daftar daftar untuk memulai

a = [[1,2,3]]
b = [[4,5,6]]
a.extend(b)
print(a)

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

Selanjutnya Anda dapat melakukan ini

d = [[7,8,9]]
a.extend(d)
print(a)

[[1, 2, 3], [4, 5, 6], [4, 5, 6]]
1
ZWang 5 Januari 2021, 09:37