2015-10-15 85 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

無論如何,我希望它基本上是靜態的,所以連續兩個逗號。不想增加額外的,不需要的複雜性和字符 – simplycoding

+2

它不能是空的。除非你使用幾百GB的數據,否則我不會擔心'None'或''''額外的「複雜性和字符」。 – TigerhawkT3

回答

-2

Python中的空字符串由''表示。

當你將它傳遞給數據庫時,它最終也應該以空白字符串結尾。

例如:

print '' 

將打印完全空白的行

+0

實際上,它不會在技術上打印出空行。它將在其上打印一個帶有單個字符的行 - 一個換行符。 – TigerhawkT3

+0

我將行'n'解釋爲空白行 - 至少對我來說,這就是它的一條線! –

+0

但這是關於'print'的行爲,而不是''''的行爲。 –

1

引號不在列表中的實際價值的一部分,所以當你追加"" - 它顯示爲'' - - 列表中的內容是一個零長度的字符串。

如果不是零長度的字符串,而是想要「無」,python值None是最接近「無」的東西。

選擇取決於「空白值」的含義。對我來說,這是一個空字符串。但是,如果您需要區分空字符串和「空白」,那麼它是很好的。

2

有趣的是,你可以用一個__repr__方法定義一個自定義類,它會給你你想要的。 __repr__定義了作爲諸如列表之類的容器的一部分打印時,opject將被表示的方式。

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

雖然這是純粹的學術,與列表中只有None相比,它不會節省任何空間。一個None對象將是插槽爲空的最佳表示。

+1

我會用'BlankObj = BlankObj()'使'BlankObj'成爲一個單身人士,這會使它更簡單。 – martineau

相關問題