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

相关问题