2014-11-04 1 views
0

Я хочу взять список и добавить последние несколько переменных вместе, но пропустить первые 2. ex. myList = ['bob', 'rocks', '45', '56', '67'] У меня есть целый текстовый документ, который выглядит так, и я хочу взять цифры и добавить их вместе для среднего, но не трогать слова.Python 3.4 Вы можете суммировать список, но оставить некоторые переменные?

ответ

0

использование slicing пропустить первые две записи, и использовать map приведение к int:

>>> myList = ['bob', 'rocks', '45','56','67'] 
>>> sum(map(int,myList[2:])) 
168 
+0

Вместо того, чтобы жестко кодировать позиции слов, вероятно, лучше использовать подход, который может иметь дело с любой комбинацией слов и цифр. – Marius

+0

может быть, может и нет. Я понял, что позиция всегда одна и та же - если это не так, другие решения работают лучше, конечно. – ch3ka

0

можно использовать .isdigit(), чтобы проверить, если текущий элемент является строкой или числом

sum = 0 
for each in lines: 
    if each.isdigit(): 
     sum +=int(each) 
    else: 
     print "slipped",each 
print sum 
3

Я полагаю, вы хотите суммировать все числа, представляющие элементы. Вы можете использовать генераторное выражение следующим образом:

sum(int(x) for x in myList if x.isdigit()) 
+1

генератор понимание если быть точным. Он не создает список, просто дает элементы 'sum' один за другим. –

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