Ruby Arrays: keep repeated values only from the end of an array of arrays
2014-06-21 14:14
501 查看
If I have an array of arrays:
How can I eliminate the repeated values, keeping the ones at the END of the array, resulting in:
注:invert
颠倒Hash的k-v对。
h = {:a => 1,:b => 1} #=> {:a=>1, :b=>1}
x = h.invert #=> {1=>:b}
invert方法可以颠倒Hash的键-值,可是因为Hash键的唯一性,可能会发生上例那样的数据丢失!
[[1, "foo"], [2, "bar"], [3, "foo"], [4, "foo"], [5, "bar"], [6, "baz"]]
How can I eliminate the repeated values, keeping the ones at the END of the array, resulting in:
[[4, "foo"], [5, "bar"], [6, "baz"]]
a.reverse.uniq(&:last).reverse => [[4, "foo"], [5, "bar"], [6, "baz"]]
arr.group_by{|x|x[1]}.values.map(&:last)
array = [[1, "foo"], [2, "bar"], [3, "foo"], [4, "foo"], [5, "bar"], [6, "baz"]] Hash[array].invert.map { |k,v| [v,k] }
注:invert
颠倒Hash的k-v对。
h = {:a => 1,:b => 1} #=> {:a=>1, :b=>1}
x = h.invert #=> {1=>:b}
invert方法可以颠倒Hash的键-值,可是因为Hash键的唯一性,可能会发生上例那样的数据丢失!
相关文章推荐
- given an array of integers Find the index of values that satisfy A+B = C + D
- How do you copy the contents of an array to a std::vector in C++ without looping? (From stack over flow)
- Whats the best way to split an array in ruby into multiple smaller arrays of random size
- The minimum number of elements to reach the end of an array
- How to enter an End-Of-File from the keyboard
- An instance of getting the maximum and minimum values in an array
- Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ
- 转载:how to automate Microsoft Excel and return the values from a multi-cell range to an array
- Make sure the content of your adapter is not modified from a background thread, but only from the UI
- (NOT CLEAR)Question 40: In the declaration below, p is a pointer to an array of 5 int pointers:
- How can I get the IPv4 address of an interface in linux from C code ?
- The Attributes property of a ListItem control only works within an HtmlSelect control
- Question 30: What is the order of destructor calls for an object of class Y inherited from class X that has an object of class A
- 在C++中怎样获得数组的大小?(原文标题:How Would You Get the Count of an Array in C++?)
- How to get the Values of Selected Row from a Gridview using ASP.NET
- HOWTO: Get the project flavor (subtype) of a Visual Studio project from an add-in
- Using Timer to get history values from EDNA database, an error is prompted in the page : "Sys.WebForms.PageRequestManagerTimeout
- Select a batch of files from a path pattern(only the last folder changes)
- Jobs’s Departure as CEO of Apple Is the End of an Extraordinary Era
- javascript---the advantage of accessing the properties of object as array(objects as associative arrays)