2016-06-05 4 views
0

У меня есть ниже питона сценария:Сплит значения и хранить в список

conn=boto.ec2.connect_to_region("us-west-1") 
result=collections.defaultdict(list) 
reservations = conn.get_all_instances() 
for res in reservations: 
     for inst in res.instances: 
       if 'clusters' in inst.tags: 
         values = inst.tags['clusters'] 
         print values 

и выход:

baka-alpha,baka-beta 
app 
app-demo,dhivart 
api 
sahar-du,app,api 

Я хочу сохранить каждое значение в списке, как:

['baka-alpha', 'baka-beta', 'app', 'app-demo', 'dhivart', 'api', 'sahar-du', 'app', 'api'] 

Как это сделать? Пожалуйста, дайте мне знать.

+0

Это не добавило никаких символов. Эти символы просто означают, что текст находится в юникоде. Вот ссылка [связанная статья] (http://stackoverflow.com/questions/2464959/whats-the-u-prefix-in-a-python-string). –

+0

Ох, приятно знать. Спасибо – SJJ

ответ

2

Если строка, которую вы хотите разделить уже присутствует в переменной, как values, вы можете попробовать следующее:

vl_list = [] # create a list for values 
for line in values.split("\n"): 
    vl_list.extend(line.split(",")) 

После этого завершения, вы будете иметь свои значения в списке vl_list

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

from sys import stdin 
vl_list = [] 
for line in stdin.readlines(): 
    vl_list.extend(line.split(",")) 

EDIT:
Ваша переменная values не содержит всех значений после цикла. Таким образом, вы можете вставить разделяющую часть прямо в петлю, и вы получите все.

vl_list = [] 
conn=boto.ec2.connect_to_region("us-west-1") 
result=collections.defaultdict(list) 
reservations = conn.get_all_instances() 
for res in reservations: 
     for inst in res.instances: 
       if 'clusters' in inst.tags: 
         values = inst.tags['clusters'] 
         vl_list.extend(values.split(",")) 
         print values 
+0

Я получаю несколько Нет как вывод – SJJ

+0

выше выход хранится в переменной с именем. Мне нужно сохранить значения в списке как [baka-alpha, baka-beta, app, app-demo, dhivart, api, sahar-du, app, api] – SJJ

+0

@SJJ Каков тип переменной 'values'? Вы можете проверить его, напечатав 'type (values)'. Убедитесь, что это строка. Также попробуйте напечатать 'repr (values)' и проверьте, не напечатано ли это: '' baka-alpha, baka-beta \ napp \ napp-demo, dhivart \ napi \ nsahar-du, app, api''. Вот как это следует хранить. Потому что приведенный выше код работает для меня. [Здесь] (http://ideone.com/OGuEVA) является ссылкой на онлайн-компилятор, который показывает код в действии – Leva7

Смежные вопросы