Форум сайта python.su
0
Доброго времени суток!
Помогите новичку с решением практической задачи?
Есть csv с данными вида
gorod1;89112345687
gorod2;89212546873
gorod3;89607988762
gorod1;89112345687
gorod2;89130546873
После обработки необходимо получить словарь по городам, с подсчитанным кол-вом уникальных номеров.
Например:
gorod1;1
gorod2;2
gorod3;1
Готового решения не прошу, помогите определиться с направлением, с помощью каких особенностей языка лучше всего реализовать алгоритм решения?
Отредактировано asphix (Июнь 18, 2015 10:30:54)
Офлайн
103
FishHookну ок))
Готового решения не прошу
Отредактировано terabayt (Июнь 18, 2015 10:50:35)
Офлайн
568
>>>Есть csv с данными вида
гуглим по тегам питон+csv
парсим файл
>>>необходимо получить словарь по городам
создаем пустой словарь
циклом проходимся по распарсеным данным
>>>подсчитанным кол-вом уникальных номеров
уникальность обеспечит множество
в итоговом словаре вида {“gorod1”: set(“89112345687”, “89607988762”)}
определяем длину множества для каждого ключа
Офлайн
568
terabayt
Готового решения не прошу
Офлайн
0
terabaytЯ передумал, готов рассмотреть готовое
Офлайн
103
asphixахах
Я передумал, готов рассмотреть готовое
import collections import csv a = collections.defaultdict(set) with open('test.txt', 'rb') as f: for i, j in csv.reader(f, delimiter=';'): a[i].update([j]) for i in a: a[i] = len(a[i]) print a
Офлайн
0
“А что, так можно было?
” (с)
К сожалению, забыл о дополнительных типах коллекций, пытался решить задачу штатными средствами.
Большое спасибо terabayt за наводку, буду разбираться.
Офлайн
0
Здравствуйте, помогите решить след.задачу.
Наприклад
Вхідні дані: I canT DAnCE i CANt TAlK Hey
видаляємо пробіли, розбиваємо на групи по 5 символів: IcanT DAnCE iCANt TAlKH ey
ey відкдається
символи нижнього регістру перетворюються в a, верхнього - в b: baaab bbabb abbba bbabb
декодуємо, використовуючи ключ:
baaab = w
bbabb = i
abbba = k
bbabb = i
Результат: wiki
Вхідні дані: Hot sUn BEATIng dOWN bURNINg mY FEet JuSt WalKIng arOUnD HOt suN mAkiNG me SWeat
видаляємо пробіли, розбиваємо на групи по 5 символів: HotsU nBEAT IngdO WNbUR NINgm YFEet JuStW alKIn garOU nDHOt suNmA kiNGm eSWea t
t відкдається
символи нижнього регістру перетворюються в a, верхнього - в b: baaab abbbb baaab bbabb bbbaa bbbaa babab aabba aaabb abbba aabab aabba abbaa
декодуємо, використовуючи ключ:
baaab = w
abbbb = e
baaab = w
bbabb = i
bbbaa = l
bbbaa = l
babab = r
aabba = o
aaabb = c
abbba = k
aabab = y
aabba = o
abbaa = u
Результат: wewillrockyou
Выдает ошибку invalid syntax (<string>, line 9)
Мой код.
import sys
coded_text = ‘I canT DAnCE i CANt TAlK Hey’
KEY = ‘aaaaabbbbbabbbaabbababbaaababaab’
alphabet = ‘abcdefghijklmnopqrstuvwxyz’
new_letter = ‘'
coded_text = coded_text.replace(’ ‘,’')
ab = “”
for letter in coded_text:
if letter.islower():
ab += ‘a’
else:
ab += ‘b’
d = len(ab)
for i in range(0,d,5):
part = ab
if len(part) == 5:
new_letter += alphabet
print new_letter
Офлайн
103
Viktoriia
Здравствуйте, помогите решить след.задачу.
>>> k = 'aaaaabbbbbabbbaabbababbaaababaab' >>> s = "Hot sUn BEATIng dOWN bURNINg mY FEet JuSt WalKIng arOUnD HOt suN mAkiNG me SWeat" >>> a = b = "" >>> for i in s: ... if not i.isspace(): ... a += 'ab'[i.isupper()] ... if not len(a) % 5: ... b += chr(k.index(a[-5:]) + ord('a')) ... >>> print b wewillrockyou
Viktoriiaвставьте правильно код
Выдает ошибку invalid syntax (<string>, line 9)
Офлайн
568
Язык форума - русский!
Офлайн