Python:创建由字符串组成的列表的有效语法

Python:创建由字符串组成的列表的有效语法,python,string,list,python-2.7,Python,String,List,Python 2.7,我是python新手,主要是想找出复制此功能的语法:strings=[“foo”,“bar”,“apple”]与strings=[foo,bar,apple]类似,这样我就不必在所有条目周围加引号。谢谢 您可以将所有字符串放在一个文本文件中,每行一个字符串。然后strings=list(open(“datafile”,“r”))我想说,创建字符串列表没有比您已经在做的更简单的方法了 strings = "foo bar apple".split() 正如其他答案所指出的,有一些方法可以将所有字

我是python新手,主要是想找出复制此功能的语法:
strings=[“foo”,“bar”,“apple”]
strings=[foo,bar,apple]
类似,这样我就不必在所有条目周围加引号。谢谢

您可以将所有字符串放在一个文本文件中,每行一个字符串。然后
strings=list(open(“datafile”,“r”))

我想说,创建字符串列表没有比您已经在做的更简单的方法了

strings = "foo bar apple".split()

正如其他答案所指出的,有一些方法可以将所有字符串放在一个大字符串或文件中,然后将它们拆分,但在我看来,这比引号更难键入,特别是如果您有一个体面的IDE可以自动关闭字符串引号。此外,您已经使用的语法是其他任何阅读您的代码的人所期望的语法;使用其他东西只会增加不必要的混乱,几乎没有任何好处。

您发布的内容有两个主要区别:

引号“”和“”表示它是一个字符串,就像[1,2,3]是一个整数列表一样。如果删除引号,实际上就是在创建python对象列表。Python对象基本上是所有Python类的基础,例如整数和字符串,Python对象是它们最基本的层次。 您可以执行以下操作:

foo = "foo"
bar = "bar"
apple = "apple"
strings = [foo,bar,apple]

如果你有很多元素要写,你可以用一个程序来写(开发人员的想法太不可思议了!),然后你复制粘贴结果:

li = []

ch = ("You have entered an empty string ''\n"
      'Type ENTER alone if you want to stop.\n'
      'Type anything if you want to record the empty string : ')

while True:
    e = raw_input('enter : ')
    if e=='':
        x = raw_input(ch)
        if x=='':  break
    li.append(e)

print
print li
例如:

enter : 123
enter : ocean
enter : flower
enter : 
You have entered an empty string ''
Type ENTER alone if you want to stop.
Type anything if you want to record the empty string : k
enter : once upon a time
enter : 14 * 4
enter : 
You have entered an empty string ''
Type ENTER alone if you want to stop.
Type anything if you want to record the empty string : 

['123', 'ocean', 'flower', '', 'once upon a time', '14 * 4']
您不必键入但只需复制的内容是:

['123', 'ocean', 'flower', '', 'once upon a time', '14 * 4']

您可以先将条目放入sqlite数据库中,如果其中有那么多条目,那么键入引号将是一个问题。对不起,这太尴尬了。你为什么要做这样的事。如果它是一个字符串,那么在它周围加上引号,这样解释器就知道它是一个字符串。否则,你认为口译员如何理解你的意思?没有镜子能猜出你的意图。python、c[#、++、…、java、scala……等语言中的引号只是一个语法结构来表达,这是一个字符串。@evildead:老实说,我很同情。与
“foo bar baz”.split()
,相比,必须在每个元素之间加上一个逗号和两个引号是非常难看和难以阅读的,而且一旦使用它,同样可读。@delnan:DNS的答案正好表达了我在读这个问题时的想法。拆分可能是解决他的问题的一个很好的办法,但从我的观点来看,它只是丑陋的。
dict(foo=None,bar=None,apple=None)。keys()。。。Hehehehei如果我最初得到的字符串是csv文件,我会改为使用strings=“foo,bar,apple”.split(“,”)?如果你最初有csv文件,然后使用stdlib中的csv模块,它将挽救你几天的生命。没错。没有更多要添加的内容。我接收到的字符串格式无法控制。字符串是以这种格式出现的,因此我正在寻找最简单的转换,而不是您应该在问题本身中编写的转换。对我来说,它读起来就像,嘿,伙计们,告诉我如何摆脱引用字符串,我太懒了,太懒了,写引号和逗号了。:)也许我和DNS对这个问题的解释太多了。
['123', 'ocean', 'flower', '', 'once upon a time', '14 * 4']