Więc napisałem proste drzewo binarne w Pythonie i natknąłem się na [...]Mylące [...] Lista w Pythonie: Co to jest?
Nie wierzę, że jest to związane z obiektem Ellipsis, ale wydaje się, że ma coś wspólnego z nieskończonością. (z powodu płytkiej kopii Pythona?). Źródłem tej pętli nieskończoności i dlatego nie zostanie rozszerzona podczas rozszerzania, gdy dostęp jest coś jestem całkowicie pokonać, jednak
>>> a
[[[[[], [], 8, 3], [[], [], 3, 2], 6, 3], [], 1, 4], [[], [], -4, 2], 0, 0]
>>> Keys(a)#With a+b
[0, 1, 6, 8, 3, -4]
>>> Keys(a)#With [a,b]
[8, [...], [...], 3, [...], [...], 6, [...], [...], 1, [...], [...], -4, [...], [...], 0, [...], [...]]
>>> Keys(a)[1]#??
[8, [...], [...], 3, [...], [...], 6, [...], [...], 1, [...], [...], -4, [...], [...], 0, [...], [...], 8, [...], [...], 3, [...], [...], 6, [...], [...], 1, [...], [...], -4, [...], [...], 0, [...], [...]]
Wersja użyciu + b
def Keys(x,y=[]):
if len(x):y+=[x[2]]+Keys(x[0],y)+Keys(x[1],y)#Though it seems I was using y=y[:]+, this actually outputs an ugly mess
return y
wersję przy użyciu [a , b]
def Keys(x,y=[]):
if len(x):y+=[x[2],Keys(x[0],y),Keys(x[1],y)]
return y
Czym dokładnie jest [...]?
Proszę być bardziej konkretny i rzeczowy. – andHapp
Będziesz chciał to edytować. Myślę, że sedno pytania kręci się wokół obiektu Ellipsis, o którym trudno wiedzieć, jeśli jeszcze go nie widziałeś (i trudno znaleźć dokumenty, nawet jeśli wiesz o tym). –
Obecna forma pytania nie ma żadnego sensu. Jeśli "a" jest (jak pokazano) listą list, to 'a' nie ma metody' keys() '. Napraw to pytanie, aby pokazać, co właściwie robisz. –