Python'da (2.7) bu şekilde kullanmak için bir 3D dizi oluşturmak istiyorum:
distance[i][j][k]
Ve dizinin boyutları sahip olduğum bir değişkenin boyutu kadar olmalıdır. (nnn)
Kullanmayı denedim:
distance = [[[]*n]*n]
ama bu işe yaramadı.
Fikri olan var mı? Çok teşekkürler!
DÜZENLEME: Yalnızca deafult kütüphanelerini kullanabiliyorum ve çarpma yöntemi (yani [[0]n]n) çalışmıyor çünkü aynı işaretçiye bağlılar ve tüm değerlerin ayrı olması gerekiyor
EDIT2: Aşağıdaki cevapla zaten çözüldü.
numpy.array`ler tam da bu durum için tasarlanmıştır:
numpy.zeros((i,j,k))
size sıfırlarla dolu ijk boyutlarında bir dizi verecektir.
Ne için ihtiyacınız olduğuna bağlı olarak, numpy ihtiyaçlarınız için doğru kütüphane olabilir.
Doğru yol şöyle olurdu
[[[0 for _ in range(n)] for _ in range(n)] for _ in range(n)]
(Yapmaya çalıştığınız şey şu şekilde yazılmalıdır (NxNxN için)
[[[0]*n]*n]*n
ancak bu doğru değil, neden @Adaman yorumuna bakın).
Her şeyin boş olarak başlatılmasında ısrar ediyorsanız, içeride fazladan bir parantez setine ihtiyacınız vardır ([] yerine [[]], çünkü bu "çoğaltılacak 1 boş liste içeren bir liste" yerine "çoğaltılacak hiçbir şey içermeyen bir liste"):
distance=[[[[]]*n]*n]*n