Мои результаты выглядят так:
('04', 3)
('06', 1)
('07', 1)
('09', 2)
Я хочу, чтобы они выглядели так:
04 3
06 1
07 1
09 2
Я пробовал разделение (не строка, не могу этого сделать) .replace (требуется строка в качестве левого операнда, а не кортеж). Я «думаю», что я попытался правильно понять списки.Мне не ясно, что я должен делать, чтобы достичь желаемого конечного результата.Я пытаюсь использовать функции n00b, так как я изучаю это, поэтому я игнорирую Lambda, так как понятия не имею, что это такое.Сейчас я пытаюсь придерживаться списка, словаря, понимания, фрагмента и т. Д.
Мой пример ниже не будет работать так, как написано, я просто пытаюсь показать свою последнюю попытку.Когда я закомментирую строки 15, 16, 17, он запускается и создает пример, показанный выше.
fname = input("Enter file:")
if len(fname) < 1 : fname = "mbox-short.txt"
emails = open(fname)
counts=dict()
for email in emails:
result=email.startswith('From ')
if result is True:
time=(email.split()[5])
hour=(time.split(':')[0])
counts[hour]=counts.get(hour, 0) +1
tmp=list()
for k, v in counts.items():
tmp.append( (k, v) )
tmp.sort()
for char in tmp:
if char in "(',)":
tmp.replace(char,'')
for k in tmp:
print (k)