Re: List to string ?
- To: mathgroup at smc.vnet.net
- Subject: [mg59687] Re: List to string ?
- From: "James Gilmore" <james.gilmore at yale.edu>
- Date: Wed, 17 Aug 2005 04:00:44 -0400 (EDT)
- Organization: Yale University
- References: <ddccb4$5vt$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi everyone,
The most efficient are:
ToString[Infix[li, ""]];
ToString[FromDigits[li]];
In[243]:=
$Version
Out[243]=
"5.0 for Microsoft Windows (June 11, 2003)"
In[244]:=
li = Table[i, {i, 10^5}];
In[245]:=
Timing[ToString[Infix[li, ""]]; ]
Out[245]=
{0.3300000000000409*Second, Null}
In[246]:=
Timing[ToString[FromDigits[li]]; ]
Out[246]=
{0.22000000000002728*Second, Null}
In[247]:=
Timing[StringJoin[ToString /@ li]; ]
Out[247]=
{0.6909999999999741*Second, Null}
In[248]:=
Timing[StringJoin @@ ToString /@ li; ]
Out[248]=
{0.72199999999998*Second, Null}
In[249]:=
Timing[StringJoin[(ToString[#1] & ) /@ li]; ]
Out[249]=
{0.7810000000000059*Second, Null}
Above about 1.5 10^5 digits, ToString[Infix[li, ""]]; becomes faster:
In[344]:=
li = Table[i, {i, 1.5 10^5}];
In[345]:=
Table[Timing[ToString[Infix[li, ""]]; ],{i,20}];
Sum[%\[LeftDoubleBracket]i\[RightDoubleBracket]/Length[%],{i,Length[%]}]
Out[346]=
{0.4091 Second, Null}
In[347]:=
Table[Timing[ToString[FromDigits[li]]; ],{i,20}];
Sum[%\[LeftDoubleBracket]i\[RightDoubleBracket]/Length[%],{i,Length[%]}]
Out[348]=
{0.4041 Second, Null}
In[349]:=
li = Table[i, {i, 2 10^5}];
In[350]:=
Table[Timing[ToString[Infix[li, ""]]; ],{i,20}];
Sum[%\[LeftDoubleBracket]i\[RightDoubleBracket]/Length[%],{i,Length[%]}]
Out[351]=
{0.55075 Second, Null}
In[352]:=
Table[Timing[ToString[FromDigits[li]]; ],{i,20}];
Sum[%\[LeftDoubleBracket]i\[RightDoubleBracket]/Length[%],{i,Length[%]}]
Out[353]=
{0.58835 Second, Null}
--
James Gilmore
Graduate Student
Department of Physics
Yale University
New Haven, CT 06520 USA
"Dr. Wolfgang Hintze" <weh at snafu.de> wrote in message
news:ddccb4$5vt$1 at smc.vnet.net...
> Given a list li={1,2,3} what is an efficient way to transform it to the
> string st="123"?
>
> Thanks in advance for your help.
>
> Regards,
> Wolfgang
>