{"id":43872,"date":"2025-08-05T16:51:14","date_gmt":"2025-08-05T07:51:14","guid":{"rendered":"https:\/\/techgym.jp\/?p=43872"},"modified":"2025-08-05T16:51:18","modified_gmt":"2025-08-05T07:51:18","slug":"python-gyakujun","status":"publish","type":"post","link":"https:\/\/techgym.jp\/column\/python-gyakujun\/","title":{"rendered":"Python\u9006\u9806\u4e26\u3073\u66ff\u3048\u5b8c\u5168\u30ac\u30a4\u30c9 &#8211; reverse\u30fbreversed\u306e\u4f7f\u3044\u5206\u3051\u304b\u3089\u5fdc\u7528\u30c6\u30af\u30cb\u30c3\u30af\u307e\u3067"},"content":{"rendered":"\n<p>\u00a0<\/p>\n<p>Python\u3067\u30ea\u30b9\u30c8\u3084\u6587\u5b57\u5217\u3092\u9006\u9806\u306b\u4e26\u3073\u66ff\u3048\u308b\u51e6\u7406\u306f\u3001\u30c7\u30fc\u30bf\u51e6\u7406\u3084\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u5b9f\u88c5\u306b\u304a\u3044\u3066\u983b\u7e41\u306b\u4f7f\u7528\u3055\u308c\u308b\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u3067\u3059\u3002Python\u306b\u306f<code>reverse()<\/code>\u30e1\u30bd\u30c3\u30c9\u3001<code>reversed()<\/code>\u95a2\u6570\u3001\u30b9\u30e9\u30a4\u30b9\u8a18\u6cd5\u306a\u3069\u3001\u8907\u6570\u306e\u65b9\u6cd5\u304c\u7528\u610f\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u308c\u305e\u308c\u7570\u306a\u308b\u7279\u5fb4\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u624b\u6cd5\u306e\u9055\u3044\u304b\u3089\u5b9f\u7528\u7684\u306a\u5fdc\u7528\u4f8b\u307e\u3067\u3001\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<h2>1. reverse()\u3068reversed()\u306e\u57fa\u672c\u7684\u306a\u9055\u3044<\/h2>\n<h3>\u4e3b\u8981\u306a\u9055\u3044\u306e\u6bd4\u8f03\u8868<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u624b\u6cd5<\/th>\n<th>\u5bfe\u8c61<\/th>\n<th>\u5143\u30c7\u30fc\u30bf\u3078\u306e\u5f71\u97ff<\/th>\n<th>\u623b\u308a\u5024<\/th>\n<th>\u30e1\u30e2\u30ea\u52b9\u7387<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>reverse()<\/code><\/td>\n<td>\u30ea\u30b9\u30c8\u306e\u307f<\/td>\n<td>\u5909\u66f4\u3055\u308c\u308b<\/td>\n<td>None<\/td>\n<td>\u9ad8\u3044<\/td>\n<\/tr>\n<tr>\n<td><code>reversed()<\/code><\/td>\n<td>\u5168\u30b7\u30fc\u30b1\u30f3\u30b9<\/td>\n<td>\u5909\u66f4\u3055\u308c\u306a\u3044<\/td>\n<td>\u30a4\u30c6\u30ec\u30fc\u30bf<\/td>\n<td>\u9ad8\u3044<\/td>\n<\/tr>\n<tr>\n<td>\u30b9\u30e9\u30a4\u30b9 <code>[::-1]<\/code><\/td>\n<td>\u5168\u30b7\u30fc\u30b1\u30f3\u30b9<\/td>\n<td>\u5909\u66f4\u3055\u308c\u306a\u3044<\/td>\n<td>\u65b0\u3057\u3044\u30aa\u30d6\u30b8\u30a7\u30af\u30c8<\/td>\n<td>\u4f4e\u3044<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>2. \u30ea\u30b9\u30c8\u306ereverse()\u30e1\u30bd\u30c3\u30c9<\/h2>\n<h3>\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\uff08\u30a4\u30f3\u30d7\u30ec\u30fc\u30b9\u64cd\u4f5c\uff09<\/h3>\n<pre><code class=\"language-python\"># \u30ea\u30b9\u30c8\u3092\u76f4\u63a5\u5909\u66f4\uff08\u30a4\u30f3\u30d7\u30ec\u30fc\u30b9\u64cd\u4f5c\uff09\nnumbers = [1, 2, 3, 4, 5]\nnumbers.reverse()\nprint(numbers)  # [5, 4, 3, 2, 1]\n\n# \u5143\u306e\u30ea\u30b9\u30c8\u304c\u5909\u66f4\u3055\u308c\u308b\u3053\u3068\u306b\u6ce8\u610f\noriginal = [1, 2, 3]\noriginal.reverse()\nprint(original)  # [3, 2, 1] - \u5143\u306e\u30ea\u30b9\u30c8\u304c\u5909\u66f4\u3055\u308c\u308b\n<\/code><\/pre>\n<h3>reverse()\u306e\u623b\u308a\u5024<\/h3>\n<pre><code class=\"language-python\"># reverse()\u306fNone\u3092\u8fd4\u3059\nmy_list = [1, 2, 3, 4]\nresult = my_list.reverse()\nprint(result)    # None\nprint(my_list)   # [4, 3, 2, 1] - \u30ea\u30b9\u30c8\u81ea\u4f53\u304c\u5909\u66f4\u3055\u308c\u308b\n<\/code><\/pre>\n<h2>3. reversed()\u95a2\u6570<\/h2>\n<h3>\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\uff08\u975e\u7834\u58ca\u7684\u64cd\u4f5c\uff09<\/h3>\n<pre><code class=\"language-python\"># \u5143\u306e\u30ea\u30b9\u30c8\u3092\u5909\u66f4\u305b\u305a\u306b\u9006\u9806\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f5c\u6210\nnumbers = [1, 2, 3, 4, 5]\nreversed_iter = reversed(numbers)\nreversed_list = list(reversed_iter)\n\nprint(numbers)       # [1, 2, 3, 4, 5] - \u5143\u306e\u30ea\u30b9\u30c8\u306f\u5909\u66f4\u3055\u308c\u306a\u3044\nprint(reversed_list) # [5, 4, 3, 2, 1]\n<\/code><\/pre>\n<h3>\u30a4\u30c6\u30ec\u30fc\u30bf\u3068\u3057\u3066\u306e\u6d3b\u7528<\/h3>\n<pre><code class=\"language-python\"># reversed()\u306f\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u8fd4\u3059\u306e\u3067\u30e1\u30e2\u30ea\u52b9\u7387\u304c\u826f\u3044\ndata = [10, 20, 30, 40, 50]\n\n# for\u6587\u3067\u76f4\u63a5\u4f7f\u7528\nfor item in reversed(data):\n    print(item)  # 50, 40, 30, 20, 10\n\n# \u4e00\u5ea6\u3060\u3051\u4f7f\u7528\u3055\u308c\u308b\u30a4\u30c6\u30ec\u30fc\u30bf\nrev_iter = reversed(data)\nprint(next(rev_iter))  # 50\nprint(next(rev_iter))  # 40\n<\/code><\/pre>\n<h2>4. \u6587\u5b57\u5217\u306e\u9006\u9806\u51e6\u7406<\/h2>\n<h3>\u30b9\u30e9\u30a4\u30b9\u8a18\u6cd5\u306b\u3088\u308b\u6587\u5b57\u5217\u9006\u9806<\/h3>\n<pre><code class=\"language-python\"># \u6587\u5b57\u5217\u306e\u9006\u9806\uff08\u6700\u3082\u4e00\u822c\u7684\u306a\u65b9\u6cd5\uff09\ntext = \"Hello World\"\nreversed_text = text[::-1]\nprint(reversed_text)  # \"dlroW olleH\"\n\n# \u65e5\u672c\u8a9e\u6587\u5b57\u5217\u3067\u3082\u540c\u69d8\njapanese = \"\u3053\u3093\u306b\u3061\u306f\"\nreversed_jp = japanese[::-1]\nprint(reversed_jp)  # \"\u306f\u3061\u306b\u3093\u3053\"\n<\/code><\/pre>\n<h3>reversed()\u3092\u4f7f\u3063\u305f\u6587\u5b57\u5217\u51e6\u7406<\/h3>\n<pre><code class=\"language-python\"># reversed()\u3067\u6587\u5b57\u5217\u3092\u9006\u9806\u306b\u3057\u3066\u30ea\u30b9\u30c8\u306b\u5909\u63db\ntext = \"Python\"\nreversed_chars = list(reversed(text))\nprint(reversed_chars)  # ['n', 'o', 'h', 't', 'y', 'P']\n\n# \u6587\u5b57\u5217\u3068\u3057\u3066\u7d50\u5408\nreversed_string = ''.join(reversed(text))\nprint(reversed_string)  # \"nohtyP\"\n<\/code><\/pre>\n<h2>5. \u69d8\u3005\u306a\u30c7\u30fc\u30bf\u578b\u3067\u306e\u9006\u9806\u51e6\u7406<\/h2>\n<h3>\u30bf\u30d7\u30eb\u306e\u9006\u9806<\/h3>\n<pre><code class=\"language-python\"># \u30bf\u30d7\u30eb\u306e\u9006\u9806\uff08\u65b0\u3057\u3044\u30bf\u30d7\u30eb\u3092\u4f5c\u6210\uff09\noriginal_tuple = (1, 2, 3, 4, 5)\nreversed_tuple = tuple(reversed(original_tuple))\nprint(reversed_tuple)  # (5, 4, 3, 2, 1)\n\n# \u30b9\u30e9\u30a4\u30b9\u8a18\u6cd5\u3067\u3082\u53ef\u80fd\nreversed_slice = original_tuple[::-1]\nprint(reversed_slice)  # (5, 4, 3, 2, 1)\n<\/code><\/pre>\n<h3>\u30ec\u30f3\u30b8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u9006\u9806<\/h3>\n<pre><code class=\"language-python\"># range\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u9006\u9806\nnormal_range = range(1, 6)\nreversed_range = list(reversed(normal_range))\nprint(reversed_range)  # [5, 4, 3, 2, 1]\n\n# \u3088\u308a\u52b9\u7387\u7684\u306a\u9006\u9806range\nbackward_range = range(5, 0, -1)\nprint(list(backward_range))  # [5, 4, 3, 2, 1]\n<\/code><\/pre>\n<h2>6. \u30cd\u30b9\u30c8\u3057\u305f\u30ea\u30b9\u30c8\u306e\u9006\u9806\u51e6\u7406<\/h2>\n<h3>1\u6b21\u5143\u306e\u9006\u9806<\/h3>\n<pre><code class=\"language-python\"># \u30cd\u30b9\u30c8\u3057\u305f\u30ea\u30b9\u30c8\u306e\u5916\u5074\u306e\u307f\u9006\u9806\nnested = [[1, 2], [3, 4], [5, 6]]\nreversed_outer = list(reversed(nested))\nprint(reversed_outer)  # [[5, 6], [3, 4], [1, 2]]\n<\/code><\/pre>\n<h3>\u5404\u30b5\u30d6\u30ea\u30b9\u30c8\u3082\u9006\u9806\u306b\u3059\u308b<\/h3>\n<pre><code class=\"language-python\"># \u5916\u5074\u3068\u5185\u5074\u306e\u4e21\u65b9\u3092\u9006\u9806\u306b\u3059\u308b\nnested = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n\n# \u5404\u30b5\u30d6\u30ea\u30b9\u30c8\u3092\u9006\u9806\u306b\u3057\u3066\u304b\u3089\u5168\u4f53\u3092\u9006\u9806\nfully_reversed = [sub_list[::-1] for sub_list in reversed(nested)]\nprint(fully_reversed)  # [[9, 8, 7], [6, 5, 4], [3, 2, 1]]\n<\/code><\/pre>\n<h2>7. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068 \u30e1\u30e2\u30ea\u52b9\u7387\u306e\u6bd4\u8f03<\/h2>\n<h3>\u5404\u624b\u6cd5\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c6\u30b9\u30c8<\/h3>\n<pre><code class=\"language-python\">import time\n\ndef performance_test(data):\n    \"\"\"\u5404\u9006\u9806\u624b\u6cd5\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\"\"\"\n    \n    # reverse()\u30e1\u30bd\u30c3\u30c9\uff08\u30a4\u30f3\u30d7\u30ec\u30fc\u30b9\uff09\n    test_data = data.copy()\n    start = time.time()\n    test_data.reverse()\n    reverse_time = time.time() - start\n    \n    # reversed()\u95a2\u6570\n    start = time.time()\n    list(reversed(data))\n    reversed_time = time.time() - start\n    \n    # \u30b9\u30e9\u30a4\u30b9\u8a18\u6cd5\n    start = time.time()\n    data[::-1]\n    slice_time = time.time() - start\n    \n    print(f\"reverse(): {reverse_time:.6f}\u79d2\")\n    print(f\"reversed(): {reversed_time:.6f}\u79d2\")\n    print(f\"\u30b9\u30e9\u30a4\u30b9: {slice_time:.6f}\u79d2\")\n\n# \u5927\u304d\u306a\u30ea\u30b9\u30c8\u3067\u30c6\u30b9\u30c8\nlarge_list = list(range(100000))\nperformance_test(large_list)\n<\/code><\/pre>\n<h3>\u30e1\u30e2\u30ea\u52b9\u7387\u306e\u6bd4\u8f03<\/h3>\n<pre><code class=\"language-python\">import sys\n\ndef memory_usage_comparison():\n    \"\"\"\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6bd4\u8f03\"\"\"\n    data = list(range(10000))\n    \n    # \u5143\u306e\u30ea\u30b9\u30c8\n    original_size = sys.getsizeof(data)\n    \n    # reversed()\uff08\u30a4\u30c6\u30ec\u30fc\u30bf\uff09\n    rev_iter = reversed(data)\n    iter_size = sys.getsizeof(rev_iter)\n    \n    # \u30b9\u30e9\u30a4\u30b9\u3067\u4f5c\u6210\u3057\u305f\u65b0\u3057\u3044\u30ea\u30b9\u30c8\n    new_list = data[::-1]\n    new_list_size = sys.getsizeof(new_list)\n    \n    print(f\"\u5143\u306e\u30ea\u30b9\u30c8: {original_size} bytes\")\n    print(f\"reversed()\u30a4\u30c6\u30ec\u30fc\u30bf: {iter_size} bytes\")\n    print(f\"\u30b9\u30e9\u30a4\u30b9\u3067\u4f5c\u6210: {new_list_size} bytes\")\n\nmemory_usage_comparison()\n<\/code><\/pre>\n<h2>8. \u6761\u4ef6\u4ed8\u304d\u9006\u9806\u51e6\u7406<\/h2>\n<h3>\u6761\u4ef6\u306b\u57fa\u3065\u304f\u9078\u629e\u7684\u9006\u9806<\/h3>\n<pre><code class=\"language-python\">def conditional_reverse(data, condition=True):\n    \"\"\"\u6761\u4ef6\u306b\u5fdc\u3058\u3066\u9006\u9806\u306b\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6c7a\u5b9a\"\"\"\n    if condition:\n        return data[::-1] if isinstance(data, str) else list(reversed(data))\n    return data\n\nnumbers = [1, 2, 3, 4, 5]\ntext = \"Hello\"\n\nprint(conditional_reverse(numbers, True))   # [5, 4, 3, 2, 1]\nprint(conditional_reverse(text, False))     # \"Hello\"\n<\/code><\/pre>\n<h3>\u7279\u5b9a\u306e\u6761\u4ef6\u306e\u8981\u7d20\u306e\u307f\u9006\u9806<\/h3>\n<pre><code class=\"language-python\">def reverse_even_positions(data):\n    \"\"\"\u5076\u6570\u4f4d\u7f6e\u306e\u8981\u7d20\u306e\u307f\u9006\u9806\u306b\u3059\u308b\"\"\"\n    even_elements = [data[i] for i in range(0, len(data), 2)]\n    odd_elements = [data[i] for i in range(1, len(data), 2)]\n    \n    # \u5076\u6570\u4f4d\u7f6e\u306e\u8981\u7d20\u3092\u9006\u9806\u306b\u3059\u308b\n    even_elements.reverse()\n    \n    # \u7d50\u679c\u3092\u7d44\u307f\u5408\u308f\u305b\n    result = []\n    for i in range(len(data)):\n        if i % 2 == 0:\n            result.append(even_elements[i \/\/ 2])\n        else:\n            result.append(odd_elements[i \/\/ 2])\n    \n    return result\n\ndata = [1, 2, 3, 4, 5, 6, 7, 8]\nresult = reverse_even_positions(data)\nprint(result)  # [7, 2, 5, 4, 3, 6, 1, 8]\n<\/code><\/pre>\n<h2>9. \u5b9f\u7528\u7684\u306a\u5fdc\u7528\u4f8b<\/h2>\n<h3>\u30b9\u30bf\u30c3\u30af\uff08LIFO\uff09\u306e\u5b9f\u88c5<\/h3>\n<pre><code class=\"language-python\">class Stack:\n    def __init__(self):\n        self.items = []\n    \n    def push(self, item):\n        self.items.append(item)\n    \n    def pop(self):\n        return self.items.pop() if self.items else None\n    \n    def peek(self):\n        return self.items[-1] if self.items else None\n    \n    def reverse_view(self):\n        \"\"\"\u30b9\u30bf\u30c3\u30af\u306e\u5185\u5bb9\u3092\u9006\u9806\u3067\u8868\u793a\uff08\u5e95\u304b\u3089\u9802\u4e0a\u3078\uff09\"\"\"\n        return list(reversed(self.items))\n\nstack = Stack()\nfor i in [1, 2, 3, 4, 5]:\n    stack.push(i)\n\nprint(\"\u30b9\u30bf\u30c3\u30af\uff08\u5e95\u2192\u9802\u4e0a\uff09:\", stack.reverse_view())  # [5, 4, 3, 2, 1]\nprint(\"\u30dd\u30c3\u30d7:\", stack.pop())  # 5\n<\/code><\/pre>\n<h3>\u56de\u6587\uff08\u30d1\u30ea\u30f3\u30c9\u30ed\u30fc\u30e0\uff09\u30c1\u30a7\u30c3\u30af<\/h3>\n<pre><code class=\"language-python\">def is_palindrome(text):\n    \"\"\"\u6587\u5b57\u5217\u304c\u56de\u6587\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\"\"\"\n    # \u5c0f\u6587\u5b57\u306b\u5909\u63db\u3057\u3066\u7a7a\u767d\u3092\u9664\u53bb\n    cleaned = ''.join(text.lower().split())\n    return cleaned == cleaned[::-1]\n\ndef is_palindrome_list(data):\n    \"\"\"\u30ea\u30b9\u30c8\u304c\u56de\u6587\uff08\u5bfe\u79f0\uff09\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\"\"\"\n    return data == list(reversed(data))\n\n# \u4f7f\u7528\u4f8b\nprint(is_palindrome(\"A man a plan a canal Panama\"))  # True\nprint(is_palindrome_list([1, 2, 3, 2, 1]))          # True\nprint(is_palindrome_list([1, 2, 3, 4, 5]))          # False\n<\/code><\/pre>\n<h3>\u30d5\u30a1\u30a4\u30eb\u306e\u884c\u3092\u9006\u9806\u3067\u8aad\u307f\u53d6\u308a<\/h3>\n<pre><code class=\"language-python\">def read_file_reverse_lines(filename):\n    \"\"\"\u30d5\u30a1\u30a4\u30eb\u306e\u884c\u3092\u9006\u9806\u3067\u8aad\u307f\u53d6\u308b\"\"\"\n    try:\n        with open(filename, 'r', encoding='utf-8') as file:\n            lines = file.readlines()\n            # \u5404\u884c\u306e\u6539\u884c\u6587\u5b57\u3092\u9664\u53bb\u3057\u3066\u9006\u9806\u306b\u3059\u308b\n            return [line.rstrip('\\n') for line in reversed(lines)]\n    except FileNotFoundError:\n        return []\n\n# \u30e1\u30e2\u30ea\u52b9\u7387\u7684\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\uff08\u5927\u304d\u306a\u30d5\u30a1\u30a4\u30eb\u7528\uff09\ndef read_file_reverse_generator(filename):\n    \"\"\"\u30e1\u30e2\u30ea\u52b9\u7387\u7684\u306a\u9006\u9806\u884c\u8aad\u307f\u53d6\u308a\"\"\"\n    try:\n        with open(filename, 'r', encoding='utf-8') as file:\n            lines = file.readlines()\n            for line in reversed(lines):\n                yield line.rstrip('\\n')\n    except FileNotFoundError:\n        return\n<\/code><\/pre>\n<h2>10. \u30c7\u30fc\u30bf\u69cb\u9020\u3067\u306e\u9006\u9806\u6d3b\u7528<\/h2>\n<h3>\u53cc\u65b9\u5411\u30ea\u30b9\u30c8\u306e\u5b9f\u88c5<\/h3>\n<pre><code class=\"language-python\">class Node:\n    def __init__(self, data):\n        self.data = data\n        self.next = None\n        self.prev = None\n\nclass DoublyLinkedList:\n    def __init__(self):\n        self.head = None\n        self.tail = None\n    \n    def append(self, data):\n        new_node = Node(data)\n        if not self.head:\n            self.head = self.tail = new_node\n        else:\n            new_node.prev = self.tail\n            self.tail.next = new_node\n            self.tail = new_node\n    \n    def forward_traverse(self):\n        \"\"\"\u524d\u65b9\u5411\u3078\u306e\u8d70\u67fb\"\"\"\n        result = []\n        current = self.head\n        while current:\n            result.append(current.data)\n            current = current.next\n        return result\n    \n    def backward_traverse(self):\n        \"\"\"\u5f8c\u65b9\u5411\u3078\u306e\u8d70\u67fb\uff08\u9006\u9806\uff09\"\"\"\n        result = []\n        current = self.tail\n        while current:\n            result.append(current.data)\n            current = current.prev\n        return result\n\n# \u4f7f\u7528\u4f8b\ndll = DoublyLinkedList()\nfor i in [1, 2, 3, 4, 5]:\n    dll.append(i)\n\nprint(\"\u524d\u65b9\u5411:\", dll.forward_traverse())   # [1, 2, 3, 4, 5]\nprint(\"\u5f8c\u65b9\u5411:\", dll.backward_traverse())  # [5, 4, 3, 2, 1]\n<\/code><\/pre>\n<h2>11. \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3067\u306e\u9006\u9806\u6d3b\u7528<\/h2>\n<h3>\u30d0\u30d6\u30eb\u30bd\u30fc\u30c8\u306e\u53cc\u65b9\u5411\u7248<\/h3>\n<pre><code class=\"language-python\">def cocktail_sort(arr):\n    \"\"\"\u30ab\u30af\u30c6\u30eb\u30bd\u30fc\u30c8\uff08\u53cc\u65b9\u5411\u30d0\u30d6\u30eb\u30bd\u30fc\u30c8\uff09\"\"\"\n    n = len(arr)\n    start = 0\n    end = n - 1\n    swapped = True\n    \n    while swapped:\n        swapped = False\n        \n        # \u524d\u65b9\u5411\u306e\u30d1\u30b9\n        for i in range(start, end):\n            if arr[i] &gt; arr[i + 1]:\n                arr[i], arr[i + 1] = arr[i + 1], arr[i]\n                swapped = True\n        \n        if not swapped:\n            break\n        \n        end -= 1\n        swapped = False\n        \n        # \u5f8c\u65b9\u5411\u306e\u30d1\u30b9\uff08\u9006\u9806\uff09\n        for i in range(end, start, -1):\n            if arr[i] &lt; arr[i - 1]:\n                arr[i], arr[i - 1] = arr[i - 1], arr[i]\n                swapped = True\n        \n        start += 1\n    \n    return arr\n\n# \u4f7f\u7528\u4f8b\nunsorted = [64, 34, 25, 12, 22, 11, 90]\nsorted_arr = cocktail_sort(unsorted.copy())\nprint(f\"\u30bd\u30fc\u30c8\u7d50\u679c: {sorted_arr}\")\n<\/code><\/pre>\n<h2>12. \u6587\u5b57\u5217\u51e6\u7406\u3067\u306e\u9006\u9806\u6d3b\u7528<\/h2>\n<h3>\u5358\u8a9e\u306e\u9806\u5e8f\u3092\u9006\u8ee2<\/h3>\n<pre><code class=\"language-python\">def reverse_words(sentence):\n    \"\"\"\u6587\u306e\u4e2d\u306e\u5358\u8a9e\u306e\u9806\u5e8f\u3092\u9006\u8ee2\"\"\"\n    words = sentence.split()\n    return ' '.join(reversed(words))\n\ndef reverse_each_word(sentence):\n    \"\"\"\u5404\u5358\u8a9e\u306e\u6587\u5b57\u3092\u9006\u8ee2\"\"\"\n    words = sentence.split()\n    return ' '.join(word[::-1] for word in words)\n\ndef reverse_sentence_structure(sentence):\n    \"\"\"\u6587\u306e\u69cb\u9020\u5168\u4f53\u3092\u9006\u8ee2\"\"\"\n    return sentence[::-1]\n\ntext = \"Hello Python World\"\nprint(\"\u5358\u8a9e\u9806\u5e8f\u9006\u8ee2:\", reverse_words(text))           # \"World Python Hello\"\nprint(\"\u5404\u5358\u8a9e\u9006\u8ee2:\", reverse_each_word(text))          # \"olleH nohtyP dlroW\"\nprint(\"\u6587\u5b57\u5217\u5168\u4f53\u9006\u8ee2:\", reverse_sentence_structure(text))  # \"dlroW nohtyP olleH\"\n<\/code><\/pre>\n<h2>13. \u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3068\u5b89\u5168\u306a\u5b9f\u88c5<\/h2>\n<h3>\u5b89\u5168\u306a\u9006\u9806\u51e6\u7406\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\">def safe_reverse(data, method='auto'):\n    \"\"\"\u5b89\u5168\u306a\u9006\u9806\u51e6\u7406\u95a2\u6570\"\"\"\n    try:\n        if data is None:\n            return None\n        \n        if method == 'auto':\n            # \u30c7\u30fc\u30bf\u578b\u306b\u5fdc\u3058\u3066\u6700\u9069\u306a\u624b\u6cd5\u3092\u9078\u629e\n            if isinstance(data, list):\n                result = data.copy()\n                result.reverse()\n                return result\n            elif isinstance(data, str):\n                return data[::-1]\n            elif hasattr(data, '__reversed__'):\n                return list(reversed(data))\n            else:\n                return data[::-1]\n        \n        elif method == 'slice':\n            return data[::-1]\n        \n        elif method == 'reversed':\n            return list(reversed(data))\n        \n        elif method == 'reverse' and isinstance(data, list):\n            result = data.copy()\n            result.reverse()\n            return result\n        \n        else:\n            raise ValueError(f\"Unsupported method: {method}\")\n    \n    except Exception as e:\n        print(f\"Error in safe_reverse: {e}\")\n        return data\n\n# \u30c6\u30b9\u30c8\ntest_cases = [\n    [1, 2, 3, 4],\n    \"Hello\",\n    (1, 2, 3),\n    range(5),\n    None\n]\n\nfor case in test_cases:\n    result = safe_reverse(case)\n    print(f\"{case} -&gt; {result}\")\n<\/code><\/pre>\n<h2>14. \u6700\u9069\u5316\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n<h3>\u7528\u9014\u5225\u306e\u63a8\u5968\u624b\u6cd5<\/h3>\n<pre><code class=\"language-python\">class ReverseOptimizer:\n    @staticmethod\n    def recommend_method(data_type, use_case):\n        \"\"\"\u7528\u9014\u306b\u5fdc\u3058\u305f\u6700\u9069\u306a\u9006\u9806\u624b\u6cd5\u3092\u63a8\u5968\"\"\"\n        recommendations = {\n            ('list', 'modify_original'): 'reverse()',\n            ('list', 'keep_original'): 'reversed() or slice',\n            ('list', 'memory_critical'): 'reversed()',\n            ('string', 'simple'): 'slice [::-1]',\n            ('string', 'large_text'): 'reversed() with join',\n            ('tuple', 'any'): 'slice [::-1]',\n            ('iterator', 'any'): 'reversed()'\n        }\n        \n        key = (data_type, use_case)\n        return recommendations.get(key, 'slice [::-1]')\n    \n    @staticmethod\n    def benchmark_and_choose(data, iterations=1000):\n        \"\"\"\u5b9f\u969b\u306b\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u3057\u3066\u6700\u9069\u624b\u6cd5\u3092\u9078\u629e\"\"\"\n        import time\n        \n        methods = {\n            'reverse': lambda d: d.copy().reverse() if isinstance(d, list) else None,\n            'reversed': lambda d: list(reversed(d)),\n            'slice': lambda d: d[::-1]\n        }\n        \n        results = {}\n        for name, method in methods.items():\n            try:\n                start = time.time()\n                for _ in range(iterations):\n                    method(data)\n                results[name] = time.time() - start\n            except:\n                results[name] = float('inf')\n        \n        fastest = min(results, key=results.get)\n        return fastest, results\n\n# \u4f7f\u7528\u4f8b\noptimizer = ReverseOptimizer()\nprint(\"\u30ea\u30b9\u30c8\uff08\u5143\u3092\u4fdd\u6301\uff09:\", optimizer.recommend_method('list', 'keep_original'))\nprint(\"\u6587\u5b57\u5217\uff08\u30b7\u30f3\u30d7\u30eb\uff09:\", optimizer.recommend_method('string', 'simple'))\n\n# \u30d9\u30f3\u30c1\u30de\u30fc\u30af\u4f8b\nlarge_list = list(range(10000))\nbest_method, times = optimizer.benchmark_and_choose(large_list)\nprint(f\"\u6700\u9069\u624b\u6cd5: {best_method}\")\nfor method, time_taken in times.items():\n    print(f\"  {method}: {time_taken:.6f}\u79d2\")\n<\/code><\/pre>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>Python\u3067\u306e\u9006\u9806\u51e6\u7406\u306b\u306f\u3001\u7528\u9014\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u624b\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\uff1a<\/p>\n<h3>\u63a8\u5968\u3059\u308b\u4f7f\u3044\u5206\u3051<\/h3>\n<ol>\n<li><strong><code>reverse()<\/code>\u30e1\u30bd\u30c3\u30c9<\/strong> &#8211; \u30ea\u30b9\u30c8\u3092\u76f4\u63a5\u5909\u66f4\u3057\u305f\u3044\u5834\u5408\uff08\u6700\u3082\u9ad8\u901f\u30fb\u7701\u30e1\u30e2\u30ea\uff09<\/li>\n<li><strong><code>reversed()<\/code>\u95a2\u6570<\/strong> &#8211; \u5143\u30c7\u30fc\u30bf\u3092\u4fdd\u6301\u3057\u305f\u3044\u5834\u5408\u3001\u30e1\u30e2\u30ea\u52b9\u7387\u91cd\u8996<\/li>\n<li><strong>\u30b9\u30e9\u30a4\u30b9\u8a18\u6cd5 <code>[::-1]<\/code><\/strong> &#8211; \u6587\u5b57\u5217\u3084\u30bf\u30d7\u30eb\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u51e6\u7406<\/li>\n<\/ol>\n<h3>\u9078\u629e\u306e\u6307\u91dd<\/h3>\n<ul>\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u91cd\u8996<\/strong>: <code>reverse()<\/code> &gt; <code>reversed()<\/code> &gt; \u30b9\u30e9\u30a4\u30b9<\/li>\n<li><strong>\u30e1\u30e2\u30ea\u52b9\u7387\u91cd\u8996<\/strong>: <code>reversed()<\/code> &gt; <code>reverse()<\/code> &gt; \u30b9\u30e9\u30a4\u30b9<\/li>\n<li><strong>\u53ef\u8aad\u6027\u91cd\u8996<\/strong>: \u30b9\u30e9\u30a4\u30b9 &gt; <code>reversed()<\/code> &gt; <code>reverse()<\/code><\/li>\n<li><strong>\u6c4e\u7528\u6027\u91cd\u8996<\/strong>: <code>reversed()<\/code> &gt; \u30b9\u30e9\u30a4\u30b9 &gt; <code>reverse()<\/code><\/li>\n<\/ul>\n<p>\u9069\u5207\u306a\u624b\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u5834\u5408\u306f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u8003\u616e\u3057\u305f\u5b9f\u88c5\u304c\u91cd\u8981\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u25a0\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"elyGfgtNhC\"><a href=\"https:\/\/techgym.jp\/column\/ori-app\/\">\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/column\/ori-app\/embed\/#?secret=EdAkOmHxc3#?secret=elyGfgtNhC\" data-secret=\"elyGfgtNhC\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u25a0AI\u6642\u4ee3\u306e\u7b2c\u4e00\u6b69\uff01\u300cAI\u99c6\u52d5\u958b\u767a\u30b3\u30fc\u30b9\u300d\u306f\u3058\u3081\u307e\u3057\u305f\uff01<\/p>\n\n\n\n<p>\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821\u3067\u5148\u884c\u958b\u59cb\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"kbmGHLX44x\"><a href=\"https:\/\/techgym.jp\/about\/ai-driven-development\/\">AI\u99c6\u52d5\u958b\u767a\/\u751f\u6210AI\u30a8\u30f3\u30b8\u30cb\u30a2\u30b3\u30fc\u30b9\uff08\u521d\u5fc3\u8005\u5411\u3051\uff09<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;AI\u99c6\u52d5\u958b\u767a\/\u751f\u6210AI\u30a8\u30f3\u30b8\u30cb\u30a2\u30b3\u30fc\u30b9\uff08\u521d\u5fc3\u8005\u5411\u3051\uff09&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/about\/ai-driven-development\/embed\/#?secret=JT1Wb1YkGt#?secret=kbmGHLX44x\" data-secret=\"kbmGHLX44x\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u25a0\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821<\/p>\n\n\n\n<p>\u300c\u6b66\u7530\u587e\u300d\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u7248\u3068\u3044\u3048\u3070\u300c\u30c6\u30c3\u30af\u30b8\u30e0\u300d\u3002<br>\u8b1b\u7fa9\u52d5\u753b\u306a\u3057\u3001\u6559\u79d1\u66f8\u306a\u3057\u3002\u300c\u9032\u6357\u7ba1\u7406\u3068\u30b3\u30fc\u30c1\u30f3\u30b0\u300d\u3067\u52b9\u7387\u5b66\u7fd2\u3002<br>\u3088\u308a\u65e9\u304f\u3001\u3088\u308a\u5b89\u304f\u3001\u3057\u304b\u3082\u5bfe\u9762\u578b\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"HhU5ojje9V\"><a href=\"https:\/\/techgym.jp\/tokyo\/tokyo_honko\/\">\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/tokyo\/tokyo_honko\/embed\/#?secret=YjHEUYLxC1#?secret=HhU5ojje9V\" data-secret=\"HhU5ojje9V\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u77ed\u671f\u8b1b\u7fd2\uff1e5\u65e5\u30675\u4e07\u5186\u306e\u300cPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u958b\u50ac\u4e2d\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"SdGp5tHWVE\"><a href=\"https:\/\/techgym.jp\/event\/nagatacho_camp\/\">\u72ec\u5b66\u3082\u30aa\u30f3\u30e9\u30a4\u30f3\u3082\u7121\u7406\u3060\u304b\u3089\u3001\u6709\u7d66\u3068\u3063\u3066\u300cPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u3078\u30105\u65e5\u9593\u30675\u4e07\u5186\u3011<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u72ec\u5b66\u3082\u30aa\u30f3\u30e9\u30a4\u30f3\u3082\u7121\u7406\u3060\u304b\u3089\u3001\u6709\u7d66\u3068\u3063\u3066\u300cPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u3078\u30105\u65e5\u9593\u30675\u4e07\u5186\u3011&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/event\/nagatacho_camp\/embed\/#?secret=Sw5c76w7uU#?secret=SdGp5tHWVE\" data-secret=\"SdGp5tHWVE\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u67081\u958b\u50ac\uff1e\u653e\u9001\u4f5c\u5bb6\u306b\u3088\u308b\u6620\u50cf\u30c7\u30a3\u30ec\u30af\u30bf\u30fc\u990a\u6210\u8b1b\u5ea7<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"SGWjcdciRM\"><a href=\"https:\/\/techgym.jp\/event\/video_director\/\">\u73fe\u5f79\u653e\u9001\u4f5c\u5bb6\u304c\u6559\u3048\u308b\u52d5\u753b\u8b1b\u5ea7\uff01\u300e\uff24\uff2f\uff27\uff21\u300f<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u73fe\u5f79\u653e\u9001\u4f5c\u5bb6\u304c\u6559\u3048\u308b\u52d5\u753b\u8b1b\u5ea7\uff01\u300e\uff24\uff2f\uff27\uff21\u300f&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/event\/video_director\/embed\/#?secret=Fs4o6bVHzf#?secret=SGWjcdciRM\" data-secret=\"SGWjcdciRM\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u30aa\u30f3\u30e9\u30a4\u30f3\u7121\u6599\uff1e\u30bc\u30ed\u304b\u3089\u59cb\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"16ga7JVFMM\"><a href=\"https:\/\/techgym.jp\/tokyo_python\/\">\u30bc\u30ed\u304b\u3089\u59cb\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7\uff08\u7406\u7cfb\u30fb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u521d\u5fc3\u8005\u5411\u3051\uff09<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30bc\u30ed\u304b\u3089\u59cb\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7\uff08\u7406\u7cfb\u30fb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u521d\u5fc3\u8005\u5411\u3051\uff09&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/tokyo_python\/embed\/#?secret=EaFze6LnQA#?secret=16ga7JVFMM\" data-secret=\"16ga7JVFMM\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 Python\u3067\u30ea\u30b9\u30c8\u3084\u6587\u5b57\u5217\u3092\u9006\u9806\u306b\u4e26\u3073\u66ff\u3048\u308b\u51e6\u7406\u306f\u3001\u30c7\u30fc\u30bf\u51e6\u7406\u3084\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u5b9f\u88c5\u306b\u304a\u3044\u3066\u983b\u7e41\u306b\u4f7f\u7528\u3055\u308c\u308b\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u3067\u3059\u3002Python\u306b\u306freverse()\u30e1\u30bd\u30c3\u30c9\u3001reversed()\u95a2\u6570\u3001\u30b9\u30e9\u30a4\u30b9\u8a18\u6cd5\u306a\u3069\u3001\u8907 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":42501,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-43872","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-column"],"views":53,"jetpack_featured_media_url":"\/wp-content\/uploads\/2025\/07\/f3403acf5c65aedec0dba821c4c26404.png","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts\/43872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/comments?post=43872"}],"version-history":[{"count":0,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts\/43872\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/media\/42501"}],"wp:attachment":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/media?parent=43872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/categories?post=43872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/tags?post=43872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}