95.2k views
1 vote
The function below takes a single argument: data_list, a list containing a mix of strings and numbers. The function tries to use the Filter pattern to filter the list in order to return a new list which contains only strings longer than five characters. The current implementation breaks when it encounters integers in the list. Fix it to return a properly filtered new list.

User Ppant
by
3.8k points

1 Answer

4 votes

Answer:

def filter_strings(data_list):

string_list = []

for s in data_list:

if type(s) == str and len(s) > 5:

string_list.append(s)

return string_list

Step-by-step explanation:

Create a function called filter_strings that takes data_list as a parameter

Initialize a new list to hold the strings that are longer than 5 characters

Initialize a for loop that iterates through the data_list

Check the elements if they are string - use type function, and if their length is greater than 5 - use len function. If an element satisfies the both conditions, put it to the string_list

When the loop is done, return the string_list

User Godimedia
by
4.6k points