650 Stimmen

Eine Liste in Python 3.x mit map() zurückgeben

Ich versuche, eine Liste in Hexadezimalzahlen abzubilden und dann die Liste an anderer Stelle zu verwenden. In Python 2.6, war dies einfach:

A: Python 2.6:

>>> map(chr, [66, 53, 0, 94])
['B', '5', '\x00', '^']

In Python 3.1 wird jedoch ein map-Objekt zurückgegeben.

B: Python 3.1:

>>> map(chr, [66, 53, 0, 94])
<map object at 0x00AF5570>

Wie kann ich die zugeordnete Liste abrufen (wie in A oben) auf Python 3.x?

Oder gibt es eine bessere Möglichkeit, dies zu tun? Mein anfängliches Listenobjekt hat etwa 45 Einträge und ich möchte sie in Hex umwandeln.

0voto

Hari_pb Punkte 5986

Zusätzlich zu den oben genannten Antworten in Python 3 können wir einfach eine list von Ergebniswerten aus einer map als

li = []
for x in map(chr,[66,53,0,94]):
    li.append(x)

print (li)
>>>['B', '5', '\x00', '^']

Wir können durch ein anderes Beispiel verallgemeinern, wo ich getroffen wurde, Operationen auf der Karte können auch in ähnlicher Weise behandelt werden wie in regex Problem zu lösen, können wir eine Funktion schreiben, um Folgendes zu erhalten list der zuzuordnenden Elemente und erhalten gleichzeitig die Ergebnismenge. Bsp.

b = 'Strings: 1,072, Another String: 474 '
li = []
for x in map(int,map(int, re.findall('\d+', b))):
    li.append(x)

print (li)
>>>[1, 72, 474]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X