Python str.join(): Why it’s a string method, not a list method

Why is Python’s join() a STRING method, not a list method?

x = 'this is a test'.split()

*’.join(x)
:::’.join(x)

Not:

x.join('*')

Why not? The argument can be any string-returning iterable:

*’.join(‘abcde’)
*’.join(str(x) for x in range(5))
*’.join(open(‘myfile.txt’))