RE: How Do You Reduce Multiple Elements in a List?
- To: mathgroup at smc.vnet.net
- Subject: [mg33878] RE: [mg33863] How Do You Reduce Multiple Elements in a List?
- From: "Harvey P. Dale" <hpd1 at nyu.edu>
- Date: Sun, 21 Apr 2002 06:12:27 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Bob: If the list is sorted, Split will do most of the work for you. (Look it up in the book.) For example: lstone={1,1,1,1,2,2,2,3,3,3,3,3,3,4,4,5,5,5,6}; In[1]:= {#[[1]],Length[#]}&/@Split[lstone] Out[1]= {{1,4},{2,3},{3,6},{4,2},{5,3},{6,1}} If the list is not sorted, Split still does most of the work but you should Sort the list first. For example: lsttwo={1,4,3,2,2,3,4,2,5,4,3,6,5,4,3,2,3,4,3,2,1,5}; In[2]:= {#[[1]],Length[#]}&/@Split[Sort[lsttwo]] Out[2]= {{1,2},{2,5},{3,6},{4,5},{5,3},{6,1}} Hope that helps. Best, Harvey Harvey P. Dale University Professor of Philanthropy and the Law Director, National Center on Philanthropy and the Law New York University School of Law Room 206A 110 West 3rd Street New York, N.Y. 10012-1074 tel: 212-998-6161 fax: 212-995-3149 -----Original Message----- From: Bob Harris [mailto:nitlion at mindspring.com] To: mathgroup at smc.vnet.net Subject: [mg33878] [mg33863] How Do You Reduce Multiple Elements in a List? Howdy, This seems like such a simple thing, yet I've search through the big book trying to figure it out. Perhaps someone can help me... Given a list of integers that generally contains the same number many times, I'd like to reduce it to a list that just gives me the number/count pairs. For example, I'd like to convert the list {1, 1, 1, 1, 1, 2, 2, 2, 4, 4, 4, 4, 4, 4} into {{1,5}, {2,3}, (4,6}} Is there a built-in function to do this? Seems like a histogramming operation, but I get no useful matches from ?*Hist*. Thanks, Bob H ________________________________________________________________________ This email has been scanned for all viruses by the MessageLabs SkyScan service. For more information on a proactive anti-virus service working around the clock, around the globe, visit http://www.messagelabs.com ________________________________________________________________________