{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### 配列の整形" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[false, nil]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array = [false, nil, 0, '', []]\n", "array.select{|e| !e }" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[false, 0, \"\", []]\n", "[false, nil, 0, \"\", []]\n", "[false, 0, \"\", []]\n" ] }, { "data": { "text/plain": [ "[false, 0, \"\", []]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(array.compact)\n", "p(array)\n", "\n", "p(array.compact!)\n", "array" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[4, 4.0, 2]\n" ] }, { "data": { "text/plain": [ "[4, 4, 4.0, 2]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array = [4, 4, 4.0, 2]\n", "p(array.uniq)\n", "array" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[4, 4.0, 2]\n" ] }, { "data": { "text/plain": [ "[4, 4.0, 2]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(array.uniq!)\n", "array" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[3, 2, 4, 4]\n" ] }, { "data": { "text/plain": [ "[4, 4, 2, 3]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array = [4, 4, 2, 3]\n", "p array.reverse\n", "array" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[4, 4, 2, 3]\n" ] }, { "data": { "text/plain": [ "[4, [4, [2, 3]]]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array = [4, [4, [2, 3]]]\n", "p array.flatten\n", "array" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 3, 4, 4]\n", "[2, 3, 4, 4]\n", "[\"fo\", \"foo\", \"fooo\", \"foooo\"]\n" ] }, { "data": { "text/plain": [ "[\"fo\", \"foo\", \"fooo\", \"foooo\"]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array = [4, 4, 2, 3]\n", "p array.sort!\n", "p array\n", "\n", "array = ['foooo', 'fooo', 'fo', 'foo']\n", "p array.sort_by! {|v| v.length}\n", "array" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ArgumentError", "evalue": "comparison of Integer with String failed", "output_type": "error", "traceback": [ "\u001b[31mArgumentError\u001b[0m: comparison of Integer with String failed", "\u001b[37m(pry):49:in `sort!'\u001b[0m", "\u001b[37m(pry):49:in `
'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:355:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:355:in `evaluate_ruby'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:323:in `handle_line'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:243:in `block (2 levels) in eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:242:in `catch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:242:in `block in eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:241:in `catch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:241:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/backend.rb:65:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/backend.rb:12:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:87:in `execute_request'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:47:in `dispatch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:37:in `run'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:70:in `run_kernel'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:34:in `run'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/bin/iruby:5:in `'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/bin/iruby:22:in `load'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/bin/iruby:22:in `
'\u001b[0m" ] } ], "source": [ "array = [4, '4', 2, 3]\n", "array.sort!" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[2, 3, 4, \"4\"]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array.sort_by! {|v| v.to_i }" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[2, 3, 4, 4]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array.map(&:to_i).sort!" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[\"ZELDA\", \"LINK\", \"GANON\"]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "people = %w(zelda link ganon)\n", "people.map!{|person| person.upcase}\n", "people" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[\"ZELDA\", \"LINK\", \"GANON\"]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "people = %w(zelda link ganon)\n", "people.map(&:upcase)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[\"a\", 1], [\"b\", 2], [\"c\", 3]]\n" ] }, { "ename": "TypeError", "evalue": "no implicit conversion of Integer into Array", "output_type": "error", "traceback": [ "\u001b[31mTypeError\u001b[0m: no implicit conversion of Integer into Array", "\u001b[37m(pry):66:in `transpose'\u001b[0m", "\u001b[37m(pry):66:in `
'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:355:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:355:in `evaluate_ruby'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:323:in `handle_line'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:243:in `block (2 levels) in eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:242:in `catch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:242:in `block in eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:241:in `catch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:241:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/backend.rb:65:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/backend.rb:12:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:87:in `execute_request'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:47:in `dispatch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:37:in `run'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:70:in `run_kernel'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:34:in `run'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/bin/iruby:5:in `'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/bin/iruby:22:in `load'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/bin/iruby:22:in `
'\u001b[0m" ] } ], "source": [ "array = [['a', 'b', 'c'], [1, 2, 3]]\n", "\n", "p array.transpose\n", "\n", "[1, 2, 3, 4].transpose" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "ename": "IndexError", "evalue": "element size differs (3 should be 2)", "output_type": "error", "traceback": [ "\u001b[31mIndexError\u001b[0m: element size differs (3 should be 2)", "\u001b[37m(pry):67:in `transpose'\u001b[0m", "\u001b[37m(pry):67:in `
'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:355:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:355:in `evaluate_ruby'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:323:in `handle_line'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:243:in `block (2 levels) in eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:242:in `catch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:242:in `block in eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:241:in `catch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/pry-0.10.4/lib/pry/pry_instance.rb:241:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/backend.rb:65:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/backend.rb:12:in `eval'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:87:in `execute_request'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:47:in `dispatch'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/kernel.rb:37:in `run'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:70:in `run_kernel'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/lib/iruby/command.rb:34:in `run'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/lib/ruby/gems/2.4.0/gems/iruby-0.2.9/bin/iruby:5:in `'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/bin/iruby:22:in `load'\u001b[0m", "\u001b[37m/Users/ariga/.rbenv/versions/2.4.0-preview2/bin/iruby:22:in `
'\u001b[0m" ] } ], "source": [ "[['a', 'b'], [1, 2, 3]].transpose" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[[[1, 2], [5, 6], [9, 0]], [[3, 4], [7, 8], [1, 2]]]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array = [\n", " [[1, 2], [3, 4]],\n", " [[5, 6], [7, 8]],\n", " [[9, 0], [1, 2]]\n", "]\n", "array.transpose" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[[1, 2, 3], [\"a\", \"b\", \"c\"]]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "array = [1, 'a']\n", "array.zip([2, 'b'], [3, 'c'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "次回は ■二分探索 から" ] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.0", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.0" } }, "nbformat": 4, "nbformat_minor": 1 }