2016-11-28 1 views
0

У меня есть два списка х и уВыберите конкретный элемент из списка и добавить его в другой список

x = ['13', '77', '58', '792', '171'] 

y = [] 

мне нужны все элементы, которые начинаются с «7» в х, которые будут добавлены к у

я пытался что-то вдоль линий этого:

i = 0 
for i in range(len(x)): 
    if i[0] == '7': 
     y.append(i[0]) 
     i += 1 
+0

'y.extend (e для e в x, если e.startswith ('7'))' –

+0

изменить 'y.append (i [0])' to 'y.append (i)' – inspectorG4dget

+1

и 'i + = 1' не повлияет на вашу программу, и вам не нужно «i = 0» перед циклом. –

ответ

1
In [16]: x = ['13', '77', '58', '792', '171'] 

In [17]: y = [i for i in x if i.startswith('7')] 

In [18]: y 
Out[18]: ['77', '792'] 
1

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

x = ['13', '77', '58', '792', '171'] 

y = [] 

for e in x: 
    if e[0] == '7': 
     y.append(e) 
+0

Как бы я удалить первый символ в списке строк у меня есть: х = [ «76776», «766», «71»] Я пытаюсь вернуть х = [ «6776» , '66', '1'] – dontworry123

+0

@ dontworry123 попробуйте этот 'y.append (e [1:])' вместо 'y.append (e)' –

0

Другой краткий способ был бы использовать функцию удобного фильтра(), который принимает функцию, которая будет возвращать «Ую» (функцию лямбды, и в этом случае.)

x = ['13', '77', '58', '792', '171'] 
y = list(filter(lambda item: item.startswith('7'), x)) 

(это не добавляет элементы в y, но не обязательно, если это необходимо.) Не пуленепробиваемый, но работает для вашего примера.