Функция R ', которая представляет собой эффективный и параболизированный способ поиска символов в длинных строках векторов символов. Есть ли функция или простой способ реализовать это в python?Есть ли сопоставимая функция в python для функции «which» R?
-1
A
ответ
0
Я не совсем уверен, как работает R, но вот несколько идей, чтобы вы начали
lookingFor = 'a'
print "the string of all '%s's is" %lookingFor, ''.join(char for char in myLongString if char==lookingFor)
print "there are %s many instances of the character '%s' in the string '%s'" %(myLongString.count(lookingFor), lookingFor, myLongString)
import collections
print "there are %s many instances of the character '%s' in the string '%s'" %(collections.Counter(myLongString)[lookingFor], lookingFor, myLongString)
2
В вещем способе получить индексы элементов перечислимой коллекции, если эти элементы удовлетворяют определенное условие заключается в использовании list comprehension вместе с enumerate(). Например, чтобы найти все индексы нечетных элементов в списке:
>>> mylist = [1,2,3,4,5,6,7,8]
>>> [index for index, item in enumerate(mylist) if item%2]
[0, 2, 4, 6]
+0
Спасибо. Я также нашел модуль *** pandas ***, который, хотя и немного грубый по краям, обеспечивает ограниченное применение булевой векторной оценки, которую я искал. –
0
Или заворачивают в родовой функции:
>>> which = lambda targetList, f: [index for index, item in enumerate(targetList) if f(item)]
например:
>>> mylist = [1,2,3,4,5,6,7,8]
>>> which(mylist, lambda x: x % 2)
Не могли бы вы добавить образец кода с вводом и выводом, чтобы мы могли видеть, чего именно вы пытаетесь достичь? На первый взгляд, похоже, что «отображение карт», «фильтр» и/или список могут выполнять задание, но я не знаю, насколько мощным является «что». –
Это нехорошее описание. Возможно, ссылка на документы R поможет. Кроме того, вам нужна точная функциональность или конкретное использование? –
'which' находит в векторе, индекс которого соответствует заданному значению. Вы описали 'grep'. – plannapus