List of strings as scene variable

I’d like to maintain a scene variable or property that is a simple list of strings. The length and elements of the list might change, but there is only one such list in the scene, and I’d like to be able to interact with it as a Python list. What is the best way to do this in Blender?

Technically I can do what I need with a CollectionProperty() object, as below, but this is ridiculous as all I want is a list (and declaring bpy.types.Scene.filepaths = [] at registration creates a read-only object).

Desired behavior:

my_python_list = create_list_function()
bpy.types.Scene.filepaths = my_python_list
n = len(bpy.types.Scene.filepaths)
elt = bpy.types.Scene.filepaths[ind]
bpy.types.Scene.filepaths = my_new_python_list
etc…

Workaround I’m trying to avoid:

class FileNameItem(bpy.types.PropertyGroup):
filename = bpy.props.StringProperty()
index = bpy.props.IntProperty()

bpy.types.Scene.filepaths = CollectionProperty(type=FileNameItem) # really just want a list of strings

Thanks in advance!

what’s wrong with a CollectionProperty of type PropertyGroup?
it comes with a default name-StringProperty:

bpy.types.Scene.filenames = bpy.props.CollectionProperty(type=bpy.types.PropertyGroup)

Thanks CoDEmanX, using a PropertyGroup is indeed simpler than what I wrote. But it still requires looping through every element to assign the structure to a new Python list, for example, and same for deleting. Maybe this is unavoidable in Blender, it just seemed as though there should be a way to use Python lists directly.

you can’t use built-in python types, only bpy.props serialize to .blend

well, actually you can (ID properties only), but afaik it actually stores a py list representation as string…