Python Wörterbuch Schlüssel / Wert mit Präfixen – was ist das Präfix für?

Ich habe gesehen, wie ein Python-Dict in letzter Zeit so aussieht:

test1 = {u'user':u'user1', u'user_name':u'alice'} 

Das verwirrt mich ein bisschen, was ist das u vor dem Schlüssel / Wert-Paar für? Ist es eine Art Präfix? Wie ist das anders:

 test2 = {'user':'user1', 'user_name':'alice'} 

Ich habe versucht, mit test1 und test2 zu spielen; Sie scheinen überhaupt nicht anders zu sein. Kann jemand erklären, was das Präfix ist?

 >>> test1 = {u'user':u'user1', u'user_name':u'alice'} >>> test2 = {'user':'user1', 'user_name':'alice'} >>> print test1[u'user'] user1 >>> print test1['user'] user1 >>> print test2['user'] user1 >>> print test2[u'user'] 

  • 'Ascii' Codec kann nicht Zeichen an Position * ord nicht im Bereich (128)
  • Wie man einen Unicode csv in Python 2.7 schreibt
  • Wenn ein Befehlszeilenprogramm unsicher ist von der Kodierung von stdout, welche Codierung sollte es ausgeben?
  • Unicode in Python - nur UTF-16?
  • Skript, um Unicode-Zeichen in <U9999> Format in ihre ASCII-Äquivalente zu konvertieren
  • Irgendwelche gotchas mit unicode_literals in Python 2.6?
  • Decodiere eine ENCODED-Unicode-Zeichenfolge in Python
  • UnicodeEncodeError bei Verwendung der Kompilierungsfunktion
  • 2 Solutions collect form web for “Python Wörterbuch Schlüssel / Wert mit Präfixen – was ist das Präfix für?”

    In Python 2 musst du Unicode-Zeichen zwingen, in Unicode zu bleiben.

    Also, u verhindert, dass der Text in ASCII übersetzt wird. (Verbleibend als Unicode)

    Zum Beispiel funktioniert das nicht in Python 2:

     'ô SO'.upper() == 'Ô SO'' 

    Sofern Sie dies nicht tun:

     u'ô SO'.upper() == 'Ô SO' 

    Sie können mehr dazu lesen: DOCS

    Einige Geschichte: PEP 3120

    u'unicode string' wird die Zeichenfolge einen Typ- Unicode machen , wobei ohne Präfix die Zeichenfolge eine ASCII-Zeichenfolge 'ASCII string' .

    Python ist die beste Programmiersprache der Welt.