* Edit: I like BlakeTerhune's reply! That's better than my idea. *
That's great that you're trying out cursors!
When you say "each row in a field," by "row" do you mean feature/record, and by "field" do you mean an actual field/attribute? I ask because usually with cursors, the word "row" can be a variable that might refer to attributes of one feature/record, in certain forms of syntax. Just wanting to make sure I understand what you're getting at.
Say you are wanting to assign those values in your list to three separate features/records in your table. One way to achieve what you mentioned is to use a counter. There might be a better way to do it; I'm experienced but not an expert. Just keep in mind that the first item in your list is index number 0, of course.
Also keep in mind that which value gets applied to which record in your table depends on how the table is sorted when you run your code. It does not necessarily run in order of ObjectID's. I'm not sure what the scenario could be where you are doing what you're describing - maybe it would help if you explain that.
Here's an example of using a counter:
import arcpy
arcpy.env.workspace = r"path\to\geodatabase"
fc = "fc_name"
field = "fieldname"
valuelist = ["a", "b", "e", "z"] # Values to be inserted
with arcpy.da.UpdateCursor(fc, field) as cursor:
count = 0 # Starts at zero because list index starts with zero
for row in cursor: # For each record in the table:
# This is supposed to prevent the following line from erroring
# out if count exceeds the length of the list
while count < len(valuelist):
# Assign value from the valuelist to the record in the table
row = valuelist[count]
# Increment count to select next valuelist item next time
count += 1
cursor.updateRow(row)