Vyper is not as liberal as Python; there are some limitations that you must live with. To overcome these limitations, you need to make peace with them or you need to unlock your creativity. Here are some hints as to how to do this.
The first limitation is that the array must have a fixed size. In Python, you might be very accustomed to having a list that you can extend on your whim, as shown in the following code:
>>> flexible_list = []
>>> flexible_list.append('bitcoin')
>>> flexible_list.append('ethereum')
>>> flexible_list
['bitcoin', 'ethereum']
There is no such thing in Vyper. You have to declare how big your array is. Then you must use an integer variable to track how many items you have inserted into this fixed-size array. You used this strategy in the Donation smart contract.
If you are...