I would like to bypass the linked objects in a "for" loop, but I wouldn't know what condition to use. I'd write something like this:
for o in bpy.context.scene:
if o is ###"single user":
print(o.name)
Object.data.users
returns the number of data-block users. Proof using the Console:
>>> for ob in bpy.context.scene.objects:
... print ("Object name:", ob.name, "- Users:", ob.data.users)
Object name: Cube - Users: 1
Object name: Light - Users: 1
Object name: Camera - Users: 1
Object.data.users
returns the number of users $\endgroup$