2015-10-15 2 views
0

Я пытаюсь добавить пустое значение в список Python. Другое значение будет добавлено после этого пустого значения.Как добавить пустое значение в список Python?

Это работает:

foo=['NYC', 'Ny', 'Us'] 
print foo 
#['NYC', 'Ny', 'Us'] 

foo.append('') 
print foo 
#['NYC', 'Ny', 'Us',''] 

foo.append('TRUE') 
print foo 
#['NYC', 'Ny', 'Us','', 'TRUE'] 

Как вы можете видеть, все значения по существу строки.

Как сделать первое добавление пустого значения без кавычек? Я бы предпочел ничего, если он пуст, так как я передам этот список в конечном итоге в файл и в базу данных.

+1

Что вы на самом деле пытаетесь сделать? Знаки кавычек здесь, чтобы показать, где начинается и заканчивается строка. Они не являются частью самой строки. – Kevin

+0

Независимо от того, я хочу, чтобы он был в основном emtpy, поэтому две запятые в строке. Не нужно добавлять дополнительную, ненужную сложность и символы. – simplycoding

+2

Это не может быть пустым. Если вы не работаете с несколькими сотнями ГБ данных, я бы не стал беспокоиться о дополнительной «сложности и характере» «Нет» или «». – TigerhawkT3

ответ

-2

Пустая строка представлена ​​'' в Python.

Когда вы передаете его в базу данных, оно должно в конечном итоге также стать пустой строкой.

Например:

print '' 

напечатает полностью пустую строку

+0

Фактически, это не будет технически печатать пустую строку. Он напечатает строку с одним символом на ней - перевод строки. – TigerhawkT3

+0

Я интерпретирую строку '\ n' как пустую строку - для меня, по крайней мере, это то, что делает ее строкой! –

+0

Но это о поведении 'print', а не о поведении' '' '. –

1

Кавычки не являются частью фактического значения в списке, так что, когда вы добавляете "" - и это показывает, как '' - - то, что в списке, является строкой нулевой длины.

Если вместо строки нулевой длины вы хотите «ничего», значение python None является самым близким к «ничего».

Выбор зависит от того, что вы подразумеваете под «пустым значением». Для меня это пустая строка. None, однако, хорошо, если вам нужно различать пустую строку и «ничего».

2

Интересно, что вы можете определить пользовательский класс с помощью метода __repr__, который даст вам то, что вы хотите. __repr__ определяет способ отображения опциона при печати как части контейнера, такого как список.

>>> class BlankObj: 
... def __repr__(self): 
... return "" 
... 
>>> list((1,2,BlankObj(),3)) 
[1, 2, , 3] 

Это, в сущности, чисто академическое; это не экономит пространство, просто имея None в вашем списке. Объект None будет лучшим представлением, что слот пуст.

+1

Я бы сделал «BlankObj» синглтон с «BlankObj = BlankObj()», который упростил бы его использование. – martineau

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