Welcome to the Treehouse Community
Looking to learn something new?
sidni ahmed3,329 Points
Players, dictionary and class code challenge
i have completed the code challenge only by looking at other peoples answers. This one seems pretty tricky.
one thing i do not get is this:
why is it we have a hyphen in the set and two '\w' in the pattern, why not one? also why does the ',\s' need to be outside the brackets
also i just do not get the how this init function works here. i think I might be just over complicating it for myself. why are we using init here any way?
import re string = '''Love, Kenneth: 20 Chalkley, Andrew: 25 McFarland, Dave: 10 Kesten, Joy: 22 Stewart Pinchback, Pinckney Benton: 18''' players = re.search(r''' ^(?P<last_name>[-\w\s\w]+),\s (?P<first_name>[-\w\s*\w]+):\s (?P<score>[\d]+)?$ ''', string, re.X | re.M)
Chris FreemanTreehouse Moderator 67,989 Points
For the first question: the hyphen and the
* and the redundant
\w are not needed. As you mentioned, a set (or character class) is defined, repeating members of the set has no effect., Since there are no
* are hyphens in the data, they aren't needed in the sets:
players = re.search(r''' ^(?P<last_name>[\w\s]+),\s (?P<first_name>[\w\s]+):\s (?P<score>[\d]+)?$ ''', string, re.X | re.M)
The second part of the challenge is a bit disconnected from the regex lesson. Task 2 is looking for a function that has an
__init__ method that takes three arguments and sets the attributes of the instance to these values;
class Player(): def __init__(self, last_name, first_name, score): self.last_name = last_name self.first_name = first_name self.score = score