Python: эффективный синтаксис для создания списка, состоящего из строк - PullRequest
5 голосов
/ 06 сентября 2011

Я новичок в python и, по сути, пытаюсь выяснить синтаксис, который повторяет эту функциональность: strings = ["foo", "bar", "apple"] с чем-то похожим на strings = [foo, bar, apple], так что мне не нужно помещать кавычки вокруг всех записей. Спасибо!

Ответы [ 6 ]

6 голосов
/ 06 сентября 2011
strings = "foo bar apple".split()
2 голосов
/ 06 сентября 2011
strings = r"foo, bar, apple".split(", ")
1 голос
/ 06 сентября 2011

Существует два основных различия между тем, что вы опубликовали:

Кавычки "" и "указывают, что это строка, как [1,2,3] будет список целых чисел. Если вы удалите кавычки, вы по сути создаете список объектов Python. Объект Python в основном является основой всех классов Python, например, целые числа и строки являются объектами python и являются их самым базовым уровнем.

Вы можете сделать что-то вроде:

foo = "foo"
bar = "bar"
apple = "apple"
strings = [foo,bar,apple]
1 голос
/ 06 сентября 2011

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

Как указывалось в других ответах, есть способы поместить все строки в один большойстроку или файл, затем разделите их, но, по моему мнению, это сложнее, чем кавычки, особенно если у вас есть достойная среда IDE, которая автоматически закрывает строковые кавычки.Кроме того, синтаксис, который вы уже используете, - это то, что ожидает любой, кто читает ваш код;использование чего-то другого просто добавляет ненужную путаницу для почти нулевого усиления.

1 голос
/ 06 сентября 2011

Вы можете поместить все строки в текстовый файл, по одной строке в каждой строке.Тогда strings = list(open("datafile", "r")).

0 голосов
/ 06 сентября 2011

Если вам нужно написать много элементов, вы можете использовать программу для этого (такая невероятная идея от разработчика!), А затем скопировать и вставить результат:

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...