Найти - Пользователи
Полная версия: Помогите нубу решить задачку :3 Застрял
Начало » Python для новичков » Помогите нубу решить задачку :3 Застрял
1
Rausching
Задача:
Дано:
telefondaten = ["Jana---9872", " Tim---2957", "Heike---1492 ", " Robert---9151", " Jana---9873", "Nina--- 1511", "Jimmy---1411 ", " Tim---6419 ", "Sarah---9721", " Henry---1189 ", "Robin---1014", "Hans---9815", "Dieter---1795 ", " Heidi---1515", "Margarete---9175", "Nina---9156", " Tim---1128 ", " Henry---6194 "]
Из текстового файла необходимо создать Телефонную книгу в форме Dictionary.
Каждый элемент списка состоит из String, в которой содержится Имя и Номер телефона. Оба эти значения разделены в String тремя тире (—). Создайте новый пустой Dictionary, в котором может быть сохранена Телефонная книга. Если Имя встречается несколько раз, то все номера должны быть сохранены с этим именем.
Руководствуйтесь этими шагами:
Проработать каждый элемент:
• Удалить имеющиеся пробелы по обеим сторонам элемента.
• Разделить string на разделители и ввести оба Значения ( Имя и Телефонн.номер) в dictionary этой телефонной книги. При этом Имя должно быть ключом, а номер –значением.
• Сначала проверьте, имеется ли уже Имя в dictionary. Если это так, то:
- вычитать нынешние значения для Имени.
- Создать новый список как со старыми номерами, так и новыми, которые были обнаружены в процессе цикла.
-присвоить этот список как новое значение ключа (Имя человека)


Вот что я нацарапал и застрял напрочь.

telefondaten = ["Jana---9872", " Tim---2957", "Heike---1492 ", " Robert---9151", " Jana---9873", "Nina---1511", "Jimmy---1411 ", " Tim---6419 ", "Sarah---9721", " Henry---1189 ", "Robin---1014", "Hans---9815", "Dieter---1795 ", " Heidi---1515", "Margarete---9175", "Nina---9156", " Tim---1128 ", " Henry---6194 "]
for string in telefondaten:
    string=string.strip()
    string=string.split("---")
  
    dict={}
    for x in string:
        for y in string:
            if x!=y:
                if x>y:
                  dict[x]= int(y)
                  print dict
    if dict.has_key(x:y)==True:
        print "bla"
    else:
        print "blabla"
Выдаёт мол false..Руки у меня кривые, брос, помогите написать.
FishHook
telefondaten = ["Jana---9872", " Tim---2957", "Heike---1492 ", " Robert---9151", " Jana---9873", "Nina---1511",
                "Jimmy---1411 ", " Tim---6419 ", "Sarah---9721", " Henry---1189 ", "Robin---1014", "Hans---9815",
                "Dieter---1795 ", " Heidi---1515", "Margarete---9175", "Nina---9156", " Tim---1128 ", " Henry---6194 "]
def record_to_contact(record):
    name, phone = map(lambda x: x.strip(), record.split("---"))
    return name, int(phone)
phonebook = dict()
for name, phone in map(record_to_contact, telefondaten):
    phonebook.setdefault(name, list()).append(phone)
print phonebook
FishHook
У тебя не руки кривые, а абсолютное, полнейшие незнание языка и нежелание его учить.
А еще ты зачем-то врешь. Объясни в чем суть приходить на форум и обманывать сообщество бестолково по детски, как будто ты на экзамене и пытаешься убедить препода “я учил, только забыл, а вчера программа работала, честное слово”?
false, говоришь, выдает? Как же оно выдаст false, когда оно выдает ошибку синтаксиса?!


Rausching
FishHook
У тебя не руки кривые, а абсолютное, полнейшие незнание языка и нежелание его учить.А еще ты зачем-то врешь. Объясни в чем суть приходить на форум и обманывать сообщество бестолково по детски, как будто ты на экзамене и пытаешься убедить препода “я учил, только забыл, а вчера программа работала, честное слово”?false, говоришь, выдает? Как же оно выдаст false, когда оно выдает ошибку синтаксиса?!


Ну..перво-на перво, да, незнание языка%) Ввели на филологическом факе эту няшу. Стараюсь понять на сколько мне на это хватает времени. Преподают нам поверхностно, поэтому выуживаю из того, что имею.
На счёт лжи- я извиняюсь, уже опосля пытался покрутить, и забыл убрать y в коде “ if dict.has_key(x)==True: ” .Вот с ним ошибка,верно. Я без него пытался- получил False.( Тут я опять косячил, ибо, как я понимаю, без значения ключа смысла в коде не было). Моя вина, сознаюсь.

Спасибо за код. Постараюсь разобраться, что к чему и уложить это в своей незнающей язык голове :3


Да..таких умных кодов я ещё не проходил%)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB