You're only calling str.format on one string in the list. Your code is working properly, not in the way you want, but in the way you coded it.
So there's really only 2 clear ways to do this imo.
Your values are 7, 8, 9 let's store them into a variable. Then we can use map on them to data which we imply are the formats for each string:
>>> vals = 7, 8, 9
>>> data = ["{:^8}", "{:^8}", "{:^8}"]
>>> list(map(str.format, data, vals))
[' 7 ', ' 8 ', ' 9 ']
Or using f-strings without implying data first, as all the formatting is the same for each value:
>>> vals = 7, 8, 9
>>> [f'{v:^8}' for v in vals]
For an alternative I guess you could use str.format in a list comprehension as well but this isn't as clean or fancy as f-strings:
>>> vals = 7, 8, 9
>>> ['{:^8}'.format(v) for v in vals]