Ben 6 pozisyonlarında burada iki olası sonuçların bütün olası düzenlemeleri üreten ediyorum:Yeniden atama davranışı nasıl ortaya çıkıyor?
paths = list(it.product([['ax','r',[],0], ['ax','l',[],0]], repeat=6))
Ne oluşturması gerektiğini bir şey gibi: is
(['ax', 'r', [], 0], ['ax', 'r', [], 0], ['ax', 'r', [], 0], ['ax',
'r', [], 0], ['ax', 'r', [], 0], ['ax', 'r', [], 0])
listesinin bir unsuru tümünü ihtiva etmektedir çıktıları. Sonuç şey
for path in paths:
axis = 1
for axis_slice in path:
if(axis%3 == 1):
axis_slice[0] = 'yp'
print(axis_slice[0])
elif(axis%3 == 2):
axis_slice[0] = 'p'
print(axis_slice[0])
elif(axis%3 == 0):
axis_slice[0] = 'xp'
print(axis_slice[0])
axis+=1
print("axis: "+str(axis))
print(path)
olduğunu Bununla:
Ben tekrarlayan desen bu böyle bir şey yazdım İçin
'yp', 'p', 'xp'
göre artık 'balta' dizesini değiştirmek istiyorum Bunun gibi:
(['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0])
Yine de yukarıdaki satırlardaki yazdırma ifadeleri bana doğru olduklarını gösteriyor. henüz geri bir 'seviyesini' atama ('yp', 'p', 'xp')
yp
p
xp
yp
p
xp
axis: 7
(['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0], ['xp', 'r', [], 0])
nasıl bu davranış ortaya etmez uzaklaşan gidiyor, ssigned? Neden iç döngüde değil, dış döngüde görünür? Değerlendirme sırasına ve tuple/listelerin paketlenme şekline sahip bir şey olabileceğini düşünüyorum.
Hedeflenen çıktı nasıl elde edilebilir?
Düzenleme için teşekkürler Bhargav Rao. Gelecek gönderideki hatalardan kaçınacağım! – Daniyal
Gerçekten de, yığın akışındaki girinti yanlıştı. İpucu için teşekkürler! Orijinal kaynağında girinti doğrudur :) Yolla ilgili olarak: her yol, tuple elemanları olarak listelerin bir listesidir. Evet, tuples (afaik) değilken listeler değiştirilebilir. :) – Daniyal
Sadece bir düşünce.Itertools.product' içinde tam listeleri kullanamazsınız ve herhangi bir endeksleme işyeri olmayacak şekilde 'tekrarı 'azaltabilirsiniz. –