2016-09-30 3 views
-1

У меня есть цикл, который возвращает мне Юникод объекты:запись юникода объекты из цикла в списке в Python

for i in X: 
print i 

Output: 

    A 
    B 
    C 
    ... 
    Z 

Как я могу сделать список этих объектов, чтобы получить folloving?

['A', 'B', ..., 'Z'] 

Если бы они были номера, я бы сделал

for i in X: 
y=[] 
i.append(y) 

, но здесь я получаю ошибку

AttributeError: 'unicode' object has no attribute 'append' 

ответ

0

Если вы перебираете переменную, вы уже знаете, что она является итерируемой, такой как генератор или список. Во-первых, вам нужно указать тип переменной x в вашем заявлении.

Если ожидаемый выход список и x не один, просто вызовите list функцию:

new_list = list(x) 

Если это необходимо, чтобы вы строите список в цикле по какой-то причине, вы должны называть append функция на ранее созданном списке - не пункт, как вы делаете в вашем примере:

new_list = [] 
for i in x: 
    new_list.append(i) 
print (new_list) 
+0

, но это то, что им делать, прежде чем получить ошибку :( – Polly

+1

@ Полностью Нет, нет. Вы делаете 'i.append (new_list)' вместо 'new_list.append (i)' –

+1

Нет, это не так: ваш код не имеет никакого отношения, прежде всего, и во-вторых, вы объявляете (неиспользованную) 'y' variable * внутри * цикл, а затем добавление к элементу 'i', а не список. Заметьте, что я написал 'new_list.append', а не' i.append' – brianpck

0

попробовать это:

output_list = [y for y in x]

в вашем цикл:

for i in X: 
    i.append(X) 

он принимает каждый элемент в X, которые являются юникод символы, и пытается добавить весь X объект к нему.

Я думаю, что Вы желаете сделать это так:

l = [] 
for i in X: 
    l.append(i) 
print l 

, но это может быть достигнуто с простым списком понимания показано выше.

+4

Это долго 'output_list = список (х)' – khelwood

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