在不使用引号的情况下在python中创建字符串列表的任何方便方法

时间:2016-12-08 11:22:23

标签: python python-2.7 python-3.x

是否有任何方便的方法来创建字符串列表,而不使用引号。 实际上,每当我必须输入创建一个长列表时,总是困扰我添加引号,有时候我会想念它。

例如:

a=['foo','bar', 'xyz','abc'............'pqr']

如果a是长列表,那么输入这样的列表很痛苦。

我想直接使用类似的东西:

a= [foo,bar,xyz,pqr,abc,klm,........]

就像逗号分隔列表一样。

2 个答案:

答案 0 :(得分:4)

如果字符串由单个标记组成 - 它们之间没有空格,则可以只写一个长字符串,然后使用“split”获取列表:

class Person:
    __slots__ = "name age address number".split()

并且,同样的精神,对于更复杂的字符串,你可以做同样的事情,只使用你喜欢的任何其他分隔符 - 只需使用split传递可选的sep参数。你也可以在Python中使用多行字符串= """ strign引用,并使用“\ n”作为拆分分隔符,每行得到一个字符串。

(保留你的榜样:

a = "foo bar xyz abc pqr".split()

另一种不是完全不相关的键入较少引号字符的方式是在声明文字内联词典时 - 而不是通常的

{"xyz": 1, "abc": 2, "def": 3}

使用dict内置本身可以输入更少的内容:

dict(xyz=1, abc=2, def=3)

答案 1 :(得分:4)

字符串文字需要引号。您唯一的选择可能是使用逗号分隔值创建单个文字(当然需要初始引号),然后然后对其进行操作以将其分解为子字符串。

例如:

s = "foo,bar,xyz,pqr,abc,klm"

通过拆分',',您可以填充一个列表:

l = s.split(',')

包含子字符串:

['foo', 'bar', 'xyz', 'pqr', 'abc', 'klm']