The problem has the following parameters:
Write a function called only_a that takes in a list of strings and returns a list of strings that contain the letter 'a'.
This is code I am trying to use:
def only_a(starting_list):
i = 'a'
final_list = ()
for char in starting_list:
if i in starting_list:
final_list = final_list starting_list.append[0]
return final_list
t_string_list = ['I like apples', 'I like tea', 'I don\'t', 'Never']
print(only_a(t_string_list))
I keep getting () as a result.
CodePudding user response:
You should a bit change your solution to have it works:
def only_a(starting_list):
i = 'a'
final_list = []
for char in starting_list:
if i in char:
final_list.append(char)
return final_list
t_string_list = ['I like apples', 'I like tea', 'I don\'t', 'Never']
print(only_a(t_string_list))
CodePudding user response:
There is a confusion of types here.
() is a tuple, [] is a list, and
final_list = final_list starting_list.append[0] is treating final_list as a string since you are concatenating(adding) another presumably string. But
starting_list.append[0] errors are that append is not an attribute of starting_list and/or that the append list function is not subscriptable(can't be indexed). anotherlist.append(alist[0]) appends the value in alist at [0] to anotherlist.
[0] only gets you a value at index 0 of a string or tuple or list
this is why you are getting an empty tuple but I am surprised it gets that far.
for char in starting_list: implies that you are thinking of the list as a string instead of a list of strings.
So a suggestion to explore the different types in Python.
