Jak mogę rozpowszechnić wynik listy utworzonej w Pythonie w moim notatniku
Próbowałem rozwiązać problem, który się pojawiał, ponieważ moje IDE nie mogło zachować sekwencji liczb, ponieważ funkcja zakresu działa tak.
I zadałem poprzednie pytanie na ten temat, więc jest to kontynuacja pytania. Oto komentarz mojej listy do poprzedniego pytania.
Właściwie wprowadziłem pewne poprawki, dodając linię; „My_list = list (range (100)) przed zastosowaniem kodu, więc faktycznie zadziałało. Ale łączy odpowiedzi bez przecinków, na przykład 10 robi to „0123456789” zamiast „0,1,2,3,4,5, ..... 8,9”. jakieś sugestie?
Postanowiłem opublikować to pytanie, aby drugie pytanie nie wyszło z kontekstu (tak jak mi doradzono).
Jakieś sugestie?
Odpowiedzi
Musisz zrozumieć, jak działają łańcuchy znaków w Pythonie.
Łańcuchy to stałe (literały) przechowywane w zamkniętym wiadrze. W oficjalnych dokumentach można znaleźć, że „Ciągi znaków są niezmiennymi sekwencjami punktów kodowych Unicode”.
Ale programiści muszą zmieniać lub manipulować tekstem w programowalny sposób. W twoim przypadku chcesz:
„[x1] [spacja] [przecinek] [x2] [przecinek] ... [xn] [spacja] [przecinek]”, gdzie „xn” to liczba, a „,” jest stałą.
Aby to osiągnąć, w sposób programowalny, programiści mogą używać „masek”, aby poinformować oprogramowanie, gdzie chcą wprowadzić zmiany. Można użyć operatorów formatu ciągów :
"%d , %f" %(my_first_integer, my_float)
[0][1][2][3][4][\0]
# Hey Python, return a string, using the above template,
# but place useful stuff where you find magic keywords.
Co znaczy:
- Utwórz sekwencję 6 pozycji;
- W [0] umieść my_integer typu
intprzekonwertowanego nachr; - W [1] skopiuj „”;
- W [2] skopiuj „,”.
- W [3] skopiuj „”;
- W [4] umieść my_float typu
floatprzekonwertowanego nachr; - W [5] umieść „\ 0”, aby ciąg się skończył. (Automatycznie umieszczane w Pythonie)
Są na to inne sposoby, np. Obiekt string ma przydatną metodę wywoływaną formatdo obsługi tej konstrukcji:
my_integer = 2
my_string = "{0}*pi = {1}".format(my_integer, my_integer*3.14)
print(my_string)
# 2*pi = 6.28
Programista osiągnie ten sam wynik końcowy, używając jednej lub drugiej strategii.
W Pythonie, podobnie jak w innych językach, można łączyć łańcuchy, konkatenować, pobierać podciągi i tak dalej, używając określonych metod i / lub operatorów.
Aby zachować czytelność, być może (chyba) chcesz umieścić każdą wartość w linii. W łańcuchach możesz używać znaków specjalnych, takich jak \ndla nowych linii .
my_list = list(range(100))
# ... useful code here and there ...
with open("output.txt", "w") as o:
o.write("My list:\n")
o.write("\tSize: {0}\n\n".format(len(my_list)))
o.write("\t----start----\n")
for i in range(len(my_list)):
o.write("%d\n" % my_list[i])
o.write("\n\t----end----\n")
# That writes:
# My list:
# Size: 100
#
# ----start----
# 0
# 1
# 2
# 3
...
# 99
#
# ----end----
Pamiętaj, że nie jest to obszerny przewodnik, ale dla laika. Pomijam wiele nudnych słów i szczegółów technicznych, które lepiej znajdziesz w książkach i kursach Pythona.
Po wydrukowaniu każdej liczby wystarczy wstawić przecinek:
my_list = list(range(100))
with open("output.txt", "w") as o:
for i in range(len(my_list)):
o.write("%d," % my_list[i]) # Here, after '%d' you can place a comma, or any text you want