# Don't understand questions 4 and 5 in Advanced Python Code Challenges: Lists

I’m having trouble with questions 4 and 5 in the Advanced Python Code Challenges: Lists. Mainly because I’m not good at word problem questions

If you understand, please explain the questions to me. Thank u

1 Like

Could you post. screenshot of them, please? (I don’t have PRO so I can’t see the questions).

Question 4 is asking you to create a function with two parameters.
The first parameter is a list, the second a number(integer)
The function should return an almost identical copy of the list pass as a parameter, except for the element at the index that was passed as the second parameter. The index value should be double the value so index * 2.

So:

• Create a function with two parameters
• Multiply the value of the 2nd parameter by 2, and then put back that new value into his original place in the list
• Then return the new modified list(the list given as a parameter WITH the index value given in the 2nd parameter * 2)
• the function also needs to check if the index that was passed is bigger than the size of the list or if it is an invalid index( index < 0).

I hope this make sense…

Here’s a brief rewording/summary of each of the two challenges.

Question 4

• Make a function named double_index.
• The function should take in 2 parameters: lst (which is a list) and index (which is an integer).
• The function should return a new list.
• This new list should be the same as lst (the list that was passed into the function) except for one thing.
• The one difference should be that the element at the index index of the list should be doubled. For example, let’s say double_index([2, 4, 6, 8], 1) was called. [2, 8, 6, 8] should be returned.
[2, 4, 6, 8]    <-- list
|  |  |  |
v  v  v  v
0  1  2  3     <-- indices

Since 4 is the element at index 1, we should double it, making it 8. The new list with the doubled value should be returned.

Question 5

• Make a function named middle_element.
• The function should take in one parameter: lst (a list).
• The function should return one of two things based on the number of elements in lst.
• If there are an odd number of elements in lst, the function should return the element in the middle of the list.
• If there are an even number of elements in lst, the function should return the average of the middle two elements in the list.
Odd number of elements example:
[2, 4, 6]    <-- there are an odd number of elements (3)
|
v
middle

The function should return 4 since it is the middle element.

Even number of elements example:
[2, 4, 6, 8]    <-- there are an even number of elements (4)
|  |
v  v
middle 2

The function should return 5 since it is the average of the
middle 2 elements (which are 4 and 6).
4 Likes

OMG, thank you so much for explaining this in such a clear way. I’ve been stuck on these 2 questions forever.

2 Likes