Learn Python List Comprehension by Building a Case Converter Program - Step 19

Tell us what’s happening:

My code runs and shows the expected answer in the console, however, when I check my code it says, “Sorry, your code does not pass. You’re getting there.”
Not sure where I’m going wrong. The list comprehension I’m using is as below:
snake_cased_char_list = [‘_’ + char.lower() if char.isupper() else char for char in pascal_or_camel_cased_string]

Your code so far

def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')


# User Editable Region

    # return clean_snake_cased_string

    snake_cased_char_list = []
    snake_cased_char_list = ['_' + char.lower() if char.isupper() else char for char in pascal_or_camel_cased_string]

# User Editable Region

    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

main()

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36

Challenge Information:

Learn Python List Comprehension by Building a Case Converter Program - Step 19

1 Like

you should not have this in your code anymore

Thank you for looking into this. Why does the empty list make a difference though?

I removed snake_cased_char_list = [], as well as changed the list comprehension to: snake_cased_char_list = ['_' + char.lower() for char in pascal_or_camel_cased_string].
And that seems to have worked. I now see the if clause I originally had is expected in the next step.

1 Like

you are asked to change the empty list into a comprehension, not to add a new line, so the tests don’t find what you have written

1 Like

Thank you for clarifying!