У меня есть следующий формат данных. Это словарь с именами в виде ключей и список чисел недели в качестве значений.Как подсчитать недели между номерами конкретной недели?
{'Mali': [17, 16, 23, 18, 17, 16, 17, 18, 16],
'Gooki': [7, 8, 8, 15, 7, 7, 8],
'Piata': [85],
'Goerge': [82],
'Samoo': [106, 55],
'Marria: [101,39]}
Я хотел бы подсчитать количество недель между номерами недель, и изменить значение словаря с количеством недель вместо недели numbers.This означает, что, например, в названии «Samoo» У меня есть неделя 55 и неделю 106. Я хотел бы, чтобы мой код учитывал эти две недели плюс недели между ними (что равно 52 неделям) и устанавливал его как значение для словаря.
У меня есть код ниже, но я не уверен, чтобы сделать это выше count.
datedict = defaultdict(set)
with open('d:/info.csv', 'r') as csvfile:
filereader = csv.reader(csvfile, 'excel')
#passing the header
read_header = False
start_date=date(year=2009,month=1,day=1)
#print((seen_date - start_date).days)
tdict = {}
for row in filereader:
if not read_header:
read_header = True
continue
# reading the rest rows
name,firstseen = row[0],row[3]
try:
seen_date = datetime.datetime.strptime(firstseen, '%d/%m/%Y').date()
deltadays = (seen_date-start_date).days
deltaweeks = deltadays/7 + 1
key = name
currentvalue = tdict.get(key, set())
currentvalue.add(deltaweeks)
tdict[key] = currentvalue
except ValueError:
print('Date value error')
pass
pprint.pprint(tdict)
Может ли кто-нибудь мне помочь?
У вас есть 'Samoo' дважды в вашем словаре. Это предназначено? Кроме того, не '106-55' равен' 51'? Извините, я могу не понимать ваш вопрос – TerryA
@Haidro Я думаю, он хочет считать 106-ю неделю так, чтобы это было просто '+ 1' – jamylak
@jamylak Ah, что кажется разумным. На самом деле, я думаю, ты прав. Посмотрите на эту строку: 'deltaweeks = deltadays/7 + 1' – TerryA