The answer of fidbc using list comprehension is all needed. This is a python native solution.

But just to see how versatile `sage`

is, we can use a tacit conversion of the given tuple to a vector over a declared field. (We use the constructor for this class, which is `vector`

.) The field may be `RR`

, reals with default precision, or `RealField(100)`

if we want to set our precision. For the purist, if we really need a tuple back, there is also a conversion back to tuple...

So the one-liner would be `tuple( vector( RR, ( sin(1), cos(1), pi/4 ) ) )`

. (With or without the conversion to tuple.

Sample code following the same idea:

```
sage: t = ( sin(1), cos(1), pi/4 )
sage: vector( RR, t )
(0.841470984807897, 0.540302305868140, 0.785398163397448)
sage: type( _ )
<type 'sage.modules.free_module_element.FreeModuleElement_generic_dense'>
sage: tuple( vector( RR, t ) )
(0.841470984807897, 0.540302305868140, 0.785398163397448)
sage: type( _ )
<type 'tuple'>
sage: IR = RealField( 100 )
sage: tuple( vector( IR, t ) )
(0.84147098480789650665250232163,
0.54030230586813971740093660744,
0.78539816339744830961566084582)
```