2014-09-26 3 views
0

В чем разница между следующими двумя выходами python с использованием печати?Как python печатает строки и списки Unicode?

Первый код

s=u'String' 
print s 

печатает следующее сообщение.

String

Второй код

sl={} 
sl[u'String']=u'String' 
print sl 

печатает другое сообщение.

{u'String': u'String'} 

Почему удаленные юникодные теги удаляются в первом сценарии, но не во втором.

Кроме того, если я использую IDLE и не использовать печать, я получаю u'String', как показано ниже:

>>> s=u'String' 
>>> s 
u'String' 

Однако, если я ставлю те же две строки в file.py и запустить python file.py я ничего не получаю.

ответ

0

Для вашего первого фрагмента кода вы печатаете строку, поэтому она печатается так, как ожидалось.

Для вашей второй части кода:

sl={} 

Определяет сл в качестве словаря и

sl[u'String']=u'String' 

добавляет ключ-значение пары в словарь. Поэтому, когда вы печатаете sl, он печатает пары ключ: значение для всего словаря.

Это может помочь вам понять

>>> x = {} 
>>> x[1] = "Hello" 
>>> x[2] = "Bye" 
>>> print x 
{1: 'Hello', 2: 'Bye'} 
>>> 
+0

благодарственное, вы. Я только что узнал различия между кортежами, списками и словарями. По крайней мере, я знаю, что делает код сейчас. Однако мой первоначальный вопрос касался поведения операции печати. Почему печать преобразует строки Unicode в ASCII, но это не так для кортежей, списков или словарей? – mishatomsk

Смежные вопросы