список Python для новой строки - PullRequest
       15

список Python для новой строки

2 голосов
/ 25 сентября 2010


Я пытаюсь получить данные в пилоне для использования в автозаполнении JQuery, библиотека, которую я использую для автозаполнения, требует этот формат

abc
pqr
xyz

и в Python у меня есть данные в этом формате

[["abc"], ["pqr"],["xyz"]

Как мне преобразовать этот список в приведенный выше.

Edit:
Я пытаюсь использовать их для автоконкурента, и я использую пилоны, в которых запрос к серверу возвращает список в этом формате

    [["abc"], ["pqr"],["xyz"]

http://jquery.bassistance.de/autocomplete/demo/ эта библиотека, кроме удаленного вызова в

abc 
pqr
xyz

я пытался использовать

"\n".join(item[0] for item in my_list)

но он возвращает данные в firebug следующим образом.

'asd\ndad\nweq'

я хочу, чтобы оно было в

abc
pqr
xyz

любая помощь будет оценена, так как я PHP-разработчик, я впервые пытаюсь писать код на python.

thnaks

Ответы [ 5 ]

8 голосов
/ 25 сентября 2010
"\n".join(item[0] for item in my_list)

Однако, как это связано с JSON ...?

1 голос
/ 19 января 2013

Ваш код делает то, что вам нужно, но я предполагаю, что вы проверяете результаты в python REPL или ipython и ожидаете увидеть новые строки вместо '\ n'.

In [1]: items = [["abc"], ["pqr"],["xyz"]]
In [2]: s = "\n".join(item[0] for item in items)
In [3]: s
Out[3]: 'abc\npqr\nxyz'
In [4]: print s
abc
pqr
xyz
1 голос
/ 25 сентября 2010

Я не совсем уверен, что вы хотите, но вы можете попробовать:

nested_list = [ ["abc"], ["pqr"], ["xyz"] ]
data = "\n".join( (item[0] for item in nested_list) )

Это преобразует ваш список списков в строку, разделенную символами новой строки.

1 голос
/ 25 сентября 2010

Э-э, я не уверен, что именно вы хотите, но если вам нужно распечатать, что вы могли бы сделать

for l in data:
    print l[0]

или если вы хотите, чтобы это был плоский список, вы могли бы сделать что-то вроде

map(lambda x: x[0], a)

или если вы просто хотите одну строку с символами новой строки, вы можете сделать что-то вроде

"\n".join(map(lambda x: x[0], a))

Не знаю, если это вообще помогло, но желаю удачи

0 голосов
/ 25 сентября 2010

Я думаю, что вы хотите этого, хотя по вашему описанию это трудно понять:

  >>> l = [["abc"],["pqr"],["xyz"]]
  >>> "".join(map(lambda a:a[0] + "\n",l))
  'abc\npqr\nxyz\n'
...