2015-06-26 16 views
12

Jestem początkującym Pythonem i mam zagadkę. Kiedy piszę kod tak:Kiedy przypisuję listę do zmiennej, dlaczego Pycharm daje mi podpowiedź, która brzmi: "tworzenie tej listy można przepisać jako literalną listę"?

lst = [1, 2, 3, 4] 

pycharm dać mi wiersz, który jest „to tworzenie lista mogłaby być zapisane w postaci listy dosłownym”. Ale jeśli zostanie zastąpione przez

lst = list([1, 2, 3, 4]) 

Pycharm nic nie mówi. Kto mógłby mi powiedzieć, dlaczego?

Czy ten kod jest zgodny z lst = [1, 2, 3, 4] w języku Python? Czy mogę zignorować prompt?

Odpowiedz

8

Sprawdź swój kod, aby upewnić się, że nie masz jeszcze gdzie indziej lst jako lst=[].

Jeśli wpisać:

lst= [] 
# more code 
lst = [1, 2, 3, 4] 

Otrzymasz monit masz. Nie napotkasz problemów, jeśli zachowasz go w ten sposób, ale jest to zła praktyka.

W tych dwóch przypadkach używana jest funkcja zmiany zmiennej: list() i append(). W poprzedniej wersji, w której wyraźnie zmieniasz definicję zmiennej.

Innym przykładem niewłaściwej:

a = 7 
# some code that has nothing to do with "a" or uses it 
a = 8 

Wystarczy ustawić a = 8 zacząć. Nie trzeba przechowywać a = 7.

12

Zapisanie takiego kodu w Pythonie jest całkowicie legalne. Jednak pisanie kodu jak

lst = [1, 2, 3, 4, 12] 

byłby „lepszy” niż

lst = [1, 2, 3, 4] 
... # code has nothing do to with lst 
lst.append(12) 

W ogóle, były jeden miałby lepszą wydajność niż tego ostatniego, ale jeśli ten drugi jest bardziej czytelny w swojej Jeśli masz dobry powód, możesz zignorować prośbę PyCharm.

Jeśli ci to przeszkadza, możesz wyłączyć tę kontrolę off w

"PyCharm-> Ustawienia-> redaktora> inspection-> Python-> tworzenie Lista może być ..."