
Dieser Artikel genau, wie Sie eine Liste von Zeichenfolgen (str) und eine Liste von Zahlen (int, float) in Python mit Beispielcode ineinander konvertieren.
- Konvertieren einer Liste von Zahlen (int, float) in einer Liste von Strings (str)
- Konvertieren Sie Zahlen in Dezimalzeichenfolgen
- Konvertieren Sie Zahlen in binären, oktalen und hexadezimalen Zeichenfolgen
- Konvertieren Sie Zahlen in Exponential-Strings
- Konvertieren einer Liste von Strings (str) in eine Liste von Zahlen (int, float)
- Dezimalzeichenfolgen in Zahlen umwandeln
- Konvertieren Sie binäre, oktale und hexadezimale Zeichenfolgen in Zahlen
- Konvertieren Sie exponentielle Buchstaben in Zahlen
- Konvertieren Sie nur Buchstaben, die in Zahlen konvertiert werden können
Das Listenverständnis ist nützlich, um eine neue Liste aus einer anderen Liste zu erstellen. Der Beispielcode in diesem Artikel verwendet auch die Listenverständnisse. Nichts finden Sie im folgenden Artikel.
Weitere Informationen zum Konvertieren von Buchstaben in Zahlen finden Sie im following Artikel.
Konvertieren einer Liste von Zahlen (int, float) in einer Liste von Strings (str)
Konvertieren Sie Zahlen in Dezimalzeichenfolgen
Verwenden Sie str(), um eine Zahl in einen String umzuwandeln.
Zahlen werden mit str() in Dezimalstrings umgewandelt.
l_n = [-0.5, 0, 1.0, 100, 1.2e-2, 0xff, 0b11]
l_n_str = [str(n) for n in l_n]
print(l_n_str)
# ['-0.5', '0', '1.0', '100', '0.012', '255', '3']
Abhängig von der Anzahl der Stellen kann es automatisch in Exponentialschreibweise wiedergegeben werden.
Konvertieren Sie Zahlen in binären, oktalen und hexadezimalen Zeichenfolgen
Um Zahlen in Strings in binärer, oktaler oder hexadezimaler Schreibweise umzuwandeln, verwenden Sie bin(), oct(), hex() oder format().
l_i = [0, 64, 128, 192, 256]
l_i_hex1 = [hex(i) for i in l_i]
print(l_i_hex1)
# ['0x0', '0x40', '0x80', '0xc0', '0x100']
l_i_hex2 = [format(i, '04x') for i in l_i]
print(l_i_hex2)
# ['0000', '0040', '0080', '00c0', '0100']
l_i_hex3 = [format(i, '#06x') for i in l_i]
print(l_i_hex3)
# ['0x0000', '0x0040', '0x0080', '0x00c0', '0x0100']
Konvertieren Sie Zahlen in Exponential-Strings
Wie oben erwähnt, werden einige Zahlen abhängig von der Anzahl der Ziffern automatisch in die Exponentialschreibweise umgewandelt. Sie können sie jederzeit mit format() in Exponential-Strings umwandeln.
Wenn SIE E anstelle von e als Argument angeben, ist die Ausgabezeichenfolge ebenfalls E.
l_f = [0.0001, 123.456, 123400000]
l_f_e1 = [format(f, 'e') for f in l_f]
print(l_f_e1)
# ['1.000000e-04', '1.234560e+02', '1.234000e+08']
l_f_e2 = [format(f, '.3E') for f in l_f]
print(l_f_e2)
# ['1.000E-04', '1.235E+02', '1.234E+08']
Konvertieren einer Liste von Strings (str) in eine Liste von Zahlen (int, float)
Dezimalzeichenfolgen in Zahlen umwandeln
Verwenden Sie int() oder float(), um einen String in eine Zahl umzuwandeln.
l_si = ['-10', '0', '100']
l_si_i = [int(s) for s in l_si]
print(l_si_i)
# [-10, 0, 100]
l_sf = ['.123', '1.23', '123']
l_sf_f = [float(s) for s in l_sf]
print(l_sf_f)
# [0.123, 1.23, 123.0]
Konvertieren Sie binäre, oktale und hexadezimale Zeichenfolgen in Zahlen
Sie können die Basis im zweiten Argument von int() angeben. Konvertieren Sie eine Zeichenfolge binär in eine Zahl, wenn das zweite Argument 2 ist, oktal, wenn 8, oder hexadezimal, wenn 16.
Wenn 0 als zweites Argument von int() angegeben WIRD, Werden Zeichenfolgen mit dem Präfix 0b, 0o oder 0x in Ganzzahlen als Binär-, Oktal- bzw. Hexadezimalzahlen umgewandelt.
l_sb = ['0011', '0101', '1111']
l_sb_i = [int(s, 2) for s in l_sb]
print(l_sb_i)
# [3, 5, 15]
l_sbox = ['100', '0b100', '0o77', '0xff']
l_sbox_i = [int(s, 0) for s in l_sbox]
print(l_sbox_i)
# [100, 4, 63, 255]
Konvertieren Sie exponentielle Buchstaben in Zahlen
Strings in Exponentialschreibweise können direkt mit float() konvertiert werden.
l_se = ['1.23e3', '0.123e-1', '123']
l_se_f = [float(s) for s in l_se]
print(l_se_f)
# [1230.0, 0.0123, 123.0]
Konvertieren Sie nur Buchstaben, die in Zahlen konvertiert werden können
Das Übergeben einer Zeichenfolge, die nicht in eine Zahl konvertiert werden kann, an int() oder float() löst ValueError aus.
Durch die Definition einer Funktion, die im Fehlerfall False zurückgibt, werden nur Elemente, die konvertiert werden can, in Zahlen konvertiert.
def is_int(s):
try:
int(s)
except ValueError:
return False
else:
return True
def is_float(s):
try:
float(s)
except ValueError:
return False
else:
return True
l_multi = ['-100', '100', '1.23', '1.23e2', 'one']
l_multi_i = [int(s) for s in l_multi if is_int(s)]
print(l_multi_i)
# [-100, 100]
l_multi_f = [float(s) for s in l_multi if is_float(s)]
print(l_multi_f)
# [-100.0, 100.0, 1.23, 123.0]
Siehe den following Artikel für die Behandlung von Ausnahmen versuchen … außer ….