Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialsidni ahmed
3,329 PointsPlayers, 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:
?P<last_name>[-\w\s\w]+),\s
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)
1 Answer
Chris Freeman
Treehouse Moderator 68,441 PointsFor 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