Here is an example without a function:
my_string = "tremendeous"
my_tuples = (my_string[3], my_string[7])
Now if I want to generalize it, I'm lost as to how I can handle making the tuples variable in size?
What if the user wants 1 index, or maybe 3 indices or maybe 5 indices?
def doIt(my_string, *indices):
my_tuples = (my_string[indices_1], my_string[indices_2] .... my_string[indices_n])
return my_tuples
Someone could call: doIt("tremendeous", 3) or doIt("tremendeous", 3, 5) or doIt("tremendeous", 0, 3, 4, 4)
I know that I can use the "*" to take multiple arguments, but how can I feed a variable number of argument to my_tuples?
I believe this is what you are looking for:
In [10]: def doit(s, *indices):
...: return tuple(s[i] for i in indices)
In [11]: doit("tremendous", 1, 3, 5, 7)
Out[11]: ('r', 'm', 'n', 'o')
See this SO question about "tuple comprehensions".