Wynika to z faktu, że ta funkcja tworzy listę typów iterowalnych, dlatego nie można wstawić więcej niż jednego argumentu. (Spróbuj wpisać list('abcd')i zrozumiesz wszystko)
istnieje wyszukiwanie symboli (nie ma możliwości, aby python wiedział z góry, jeśli nie zdefiniowałeś na nowo listy, aby była czymś innym!),
istnieje wywołanie funkcji,
następnie musi sprawdzić, czy został przekazany iterowalny argument (aby mógł utworzyć listę z jego elementami) ps. w naszym przypadku nie ma żadnego, ale istnieje opcja „jeśli”
W większości przypadków różnica prędkości nie robi jednak żadnej praktycznej różnicy.
W takim przypadku list()musi tylko sprawdzić, czy w ogóle jest jakiś argument ... „sprawdź, czy iterowalny” i „utwórz listę z elementami” po prostu się nie zdarza; mają zastosowanie tylko wtedy, gdy występuje argument. Możliwe jest nawet, że kod C []wywołuje ten sam kod C co list(). W każdym razie czas związany z (c) byłby niewielki w porównaniu z (a) + (b).
@John Machin - przepraszam za zamieszanie, co miałem na myśli w (c) to, że trzeba będzie sprawdzić, czy nie było argumentu, tak. reszta dotyczyła tego, co się stanie, jeśli pojawią się kłótnie, których w naszym przypadku nie ma
To dlatego, że t.append(1)modyfikuje tw miejscu, to nie zwraca niczego, ale Nonei jesteś przypisywanie tego Nonecelu t. Więc tteraz odnosi się do Nonezamiast do listy. Twoim błędem było pisanie t=t.append(1)zamiast po prostu t.append(1). Zauważysz to samo zachowanie list(), więc nie ma tutaj różnicy.
Wystarczy podkreślić odpowiedź @Darkonaut, ponieważ uważam, że powinna być bardziej widoczna.
new_list = []lub new_list = list()oba są w porządku (ignorowanie wydajności), ale append()zwraca None, w wyniku czego nie możesz tego zrobić new_list = new_list.append(something.
Jestem bardzo zaskoczony taką decyzją typu powrotu. Fuj
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.