Если вы в порядке со сторонним модулем pandas
import pandas as pd
t = [False, False, False, False, True, True, True, False, False,
True, True, True, True, False, False, False, False, False,
False, False, True, True, True, False]
s=pd.Series(t)
s = s.loc[s==True][s.shift(+1) != s]
Другое решение без панд, использующее defaultdict
from collections import defaultdict
d=defaultdict(list)
prev=t[0]
d[prev].append(0)
for idx,element in enumerate(t[1:],1):
if element!=prev:
d[element].append(idx)
prev=element
print(d)
Выход:
defaultdict(list, {False: [0, 7, 13,23], True: [4, 9, 20]})
Изменяя к лучшему ответ @Alex, я предлагаю следующее:
using (EventLog eventLog = new EventLog("Application"))
{
//You cannot be sure if the current identity has permissions to register the event source.
try
{
if (System.Web.HttpRuntime.AppDomainAppId != null)
{
eventLog.Source = System.Web.HttpRuntime.AppDomainAppId;
}
else
{
eventLog.Source = Process.GetCurrentProcess().ProcessName;
}
}
catch (SecurityException)
{
eventLog.Source = "Application";
}
eventLog.WriteEntry("Log message example", EventLogEntryType.Information, 1000);
}
важно здесь не указать category
параметр. Если Вы делаете, и это - то же для .NET Runtime
так называемое волшебство,
описание для Идентификатора события <...> из источника <...> не может быть найден.
собирается появиться.
Вам необходимо создать источник события и файл сообщения для него. Код выглядит примерно так:
var data = new EventSourceCreationData("yourApp", "Application");
data.MessageResourceFile = pathToYourMessageFile;
EventLog.CreateEventSource(data);
Затем вам нужно будет создать файл сообщений . Также есть эта статья , которая объясняет некоторые вещи (я не читал ее полностью, но она кажется довольно полной).
Обычно это вызвано программой, которая пишет в журнал событий, а затем удаляется или перемещается.