kzen.dev
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
 elfuego1
elfuego1
Question

Jak przekonwertować ciągi znaków na liczby całkowite w Pythonie?

Mam krotkę krotek z zapytania MySQL w następujący sposób:

T1 = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))

I'would like to convert all the string elements into integers and put them back into a list of lists:

T2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]

Próbowałem to osiągnąć za pomocą eval, ale nie uzyskałem jeszcze żadnego przyzwoitego wyniku.

424 2009-03-13T10:53:59+00:00 3
 codeforester
codeforester
Edytowane pytanie 28. maja 2017 в 8:06
Programowanie
python
string
integer
Popular videos
how to convert string to integer and vice versa in python3
how to convert string to integer and vice versa in python3
4 lata temu
Python For Beginners - Convert a String to Integer - Lesson 5 With Examples
Python For Beginners - Convert a String to Integer - Lesson 5 With Examples
6 lat temu
How To Convert a String to a Number With Python
How To Convert a String to a Number With Python
5 lat temu
Dodawanie liczb całkowitych (ujemnych) - Matematyka Szkoła Podstawowa i Gimnazjum
Dodawanie liczb całkowitych (ujemnych) - Matematyka Szkoła Podstawowa i Gimnazjum
12 lat temu
Dwójkowe liczby ujemne: ZM, ZU1, ZU2. Przepełnienie (overflow)
Dwójkowe liczby ujemne: ZM, ZU1, ZU2. Przepełnienie (overflow)
8 lat temu
Od czego zacząć programowanie w Pythonie na poziomie SP
Od czego zacząć programowanie w Pythonie na poziomie SP
3 lata temu
19. Kurs Python 3 - analiza tekstu (Praktyka)
19. Kurs Python 3 - analiza tekstu (Praktyka)
3 lata temu
Implementacja Szyfru Cezara [Python] odc. 11 z serii podstaw Pythona
Implementacja Szyfru Cezara [Python] odc. 11 z serii podstaw Pythona
4 lata temu
Kurs Python 3 [#3] Konwersja zmiennych
Kurs Python 3 [#3] Konwersja zmiennych
7 lat temu
Python - Sumuj liczby
Python - Sumuj liczby
3 lata temu
Liczby Armstronga (narcystyczne) w Pythonie - dobrze, lepiej, jeszcze lepiej, ale dalej za słabo :)
Liczby Armstronga (narcystyczne) w Pythonie - dobrze, lepiej, jeszcze lepiej, ale dalej za słabo :)
1 rok temu
Jak łatwo przekonwertować tekst na liczby w Excelu?
Jak łatwo przekonwertować tekst na liczby w Excelu?
3 lata temu
Programuj obliczenia w Pythonie
Programuj obliczenia w Pythonie
3 lata temu
Python - Programuj obliczenia
Python - Programuj obliczenia
3 lata temu
Python - instrukcja iteracyjna
Python - instrukcja iteracyjna
4 lata temu
#5 Python - Liczby losowe (random)
#5 Python - Liczby losowe (random)
6 lat temu
Liczby pierwsze i naiwny test pierwszości [Python] odc. 13 z serii podstaw Pythona
Liczby pierwsze i naiwny test pierwszości [Python] odc. 13 z serii podstaw Pythona
4 lata temu
Jak określić wiek przepiórki? #83
Jak określić wiek przepiórki? #83
1 rok temu
« Poprzedni
Następny »
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
 unwind
unwind
13. marca 2009 в 10:58
2009-03-13T10:58:42+00:00
Więcej
Źródło
Edytuj
#8895082

int() jest standardową wbudowaną funkcją Pythona służącą do konwersji łańcucha znaków na wartość całkowitą. Wywołujesz ją z łańcuchem zawierającym liczbę jako argument, a ona zwraca liczbę przekonwertowaną na liczbę całkowitą:

print (int("1") + 1)

Powyższy wynik to 2.

Jeśli znasz strukturę swojej listy, T1 (że po prostu zawiera listy, tylko jeden poziom), możesz to zrobić w Pythonie 2:

T2 = [map(int, x) for x in T1]

W Pythonie 3:

T2 = [list(map(int, x)) for x in T1]
 Timo
Timo
Edytowana odpowiedź 22. marca 2018 в 5:59
607
0
Do you have a question? Add it on the site and get an answer instantly
en.kzen.dev
Will Harris
Will Harris
13. marca 2009 в 11:02
2009-03-13T11:02:30+00:00
Więcej
Źródło
Edytuj
#8895083

Możesz to zrobić za pomocą zrozumienia listy:

T2 = [[int(column) for column in row] for row in T1]

The inner list comprehension ([int(column) for column in row]) builds a list of ints from a sequence of int-able objects, like decimal strings, in row. The outer list comprehension ([... for row in T1])) buduje listę wyników wewnętrznego list comprehension zastosowanych do każdego elementu w T1.

Ten fragment kodu nie powiedzie się, jeśli któryś z wierszy będzie zawierał obiekty, które nie mogą być konwertowane przez int. Jeśli chcesz przetwarzać wiersze zawierające łańcuchy niedziesiętne, będziesz potrzebował bardziej inteligentnej funkcji.

Jeśli znasz strukturę wierszy, możesz zastąpić wewnętrzne zrozumienie listy wywołaniem funkcji dla danego wiersza. Na przykład.

T2 = [parse_a_row_of_T1(row) for row in T1]
Will Harris
Will Harris
Edytowana odpowiedź 13. marca 2009 в 11:28
28
0
Do you have a question? Add it on the site and get an answer instantly
en.kzen.dev
 AKX
AKX
13. marca 2009 в 11:04
2009-03-13T11:04:40+00:00
Więcej
Źródło
Edytuj
#8895084

Jeśli to'tylko tuple tupli, coś jak rows=[map(int, row) for row in rows] zrobi sztuczkę. (Tam jest lista comprehension i wywołanie map(f, lst), które jest równe [f(a) for a in lst]).

Eval jest nie tym, co chcesz zrobić, na wypadek, gdyby w twojej bazie danych z jakiegoś powodu było coś takiego jak __import__("os").unlink("importantsystemfile"). Zawsze sprawdzaj poprawność swoich danych wejściowych (jeśli nie ma nic innego, wyjątek int() podniesie się, jeśli masz złe dane wejściowe).

 AKX
AKX
Edytowana odpowiedź 13. marca 2009 в 11:36
1
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Andrei Kalinin
Zarejestrowany 2 tygodnie temu
2
Koroleva Ego
Zarejestrowany 1 miesiąc temu
3
Star Lenon
Zarejestrowany 1 miesiąc temu
4
Данил Жевнеров
Zarejestrowany 1 miesiąc temu
5
Анна Литвиненко
Zarejestrowany 2 miesiące temu
Do you have a question? Add it on the site and get an answer instantly
en.kzen.dev
DA
DE
EL
ES
ET
FR
ID
IT
JA
KO
LV
NL
NO
PL
PT
RO
RU
SK
TR
ZH
© kzen.dev 2023
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem