{"id":43935,"date":"2025-08-06T14:50:34","date_gmt":"2025-08-06T05:50:34","guid":{"rendered":"https:\/\/techgym.jp\/?p=43935"},"modified":"2025-08-06T14:50:36","modified_gmt":"2025-08-06T05:50:36","slug":"python-dic-minmax","status":"publish","type":"post","link":"https:\/\/techgym.jp\/column\/python-dic-minmax\/","title":{"rendered":"Python\u8f9e\u66f8\u306e\u5024\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3068\u30ad\u30fc\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u5b8c\u5168\u30ac\u30a4\u30c9\uff1a\u52b9\u7387\u7684\u306a\u691c\u7d22\u30fb\u62bd\u51fa\u30c6\u30af\u30cb\u30c3\u30af"},"content":{"rendered":"\n<p>\u00a0<\/p>\n<p>Python\u8f9e\u66f8\u3092\u6271\u3046\u969b\u3001\u300c\u6700\u9ad8\u5f97\u70b9\u306e\u5b66\u751f\u306f\u8ab0\uff1f\u300d\u300c\u58f2\u4e0a\u304c\u6700\u3082\u5c11\u306a\u3044\u6708\u306f\uff1f\u300d\u3068\u3044\u3063\u305f\u3088\u3046\u306b\u3001\u5024\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3068\u305d\u308c\u306b\u5bfe\u5fdc\u3059\u308b\u30ad\u30fc\u3092\u898b\u3064\u3051\u305f\u3044\u5834\u9762\u306f\u975e\u5e38\u306b\u3088\u304f\u3042\u308a\u307e\u3059\u3002\u672c\u8a18\u4e8b\u3067\u306f\u3001\u8f9e\u66f8\u304b\u3089\u52b9\u7387\u7684\u306b\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3068\u305d\u306e\u30ad\u30fc\u3092\u53d6\u5f97\u3059\u308b\u69d8\u3005\u306a\u65b9\u6cd5\u3092\u3001\u5b9f\u8df5\u7684\u306a\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3068\u3068\u3082\u306b\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<h2>\u57fa\u672c\u7684\u306a\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u306e\u53d6\u5f97\u65b9\u6cd5<\/h2>\n<h3>max()\u3068min()\u95a2\u6570\u3092\u4f7f\u3063\u305f\u57fa\u672c\u7684\u306a\u65b9\u6cd5<\/h3>\n<p>\u6700\u3082\u30b7\u30f3\u30d7\u30eb\u3067\u76f4\u611f\u7684\u306a\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n<pre><code class=\"language-python\">scores = {'\u592a\u90ce': 85, '\u82b1\u5b50': 92, '\u6b21\u90ce': 78, '\u7f8e\u9999': 89}\n\n# \u6700\u5927\u5024\u3092\u6301\u3064\u30ad\u30fc\u3092\u53d6\u5f97\nmax_key = max(scores, key=scores.get)\nmax_value = scores[max_key]\nprint(f\"\u6700\u9ad8\u5f97\u70b9: {max_key} ({max_value}\u70b9)\")  # \u6700\u9ad8\u5f97\u70b9: \u82b1\u5b50 (92\u70b9)\n\n# \u6700\u5c0f\u5024\u3092\u6301\u3064\u30ad\u30fc\u3092\u53d6\u5f97\nmin_key = min(scores, key=scores.get)\nmin_value = scores[min_key]\nprint(f\"\u6700\u4f4e\u5f97\u70b9: {min_key} ({min_value}\u70b9)\")  # \u6700\u4f4e\u5f97\u70b9: \u6b21\u90ce (78\u70b9)\n<\/code><\/pre>\n<h3>\u5024\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3092\u76f4\u63a5\u53d6\u5f97<\/h3>\n<pre><code class=\"language-python\">sales_data = {'1\u6708': 100000, '2\u6708': 120000, '3\u6708': 95000, '4\u6708': 110000}\n\n# \u5024\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\nmax_sales = max(sales_data.values())\nmin_sales = min(sales_data.values())\n\nprint(f\"\u6700\u9ad8\u58f2\u4e0a: {max_sales:,}\u5186\")  # \u6700\u9ad8\u58f2\u4e0a: 120,000\u5186\nprint(f\"\u6700\u4f4e\u58f2\u4e0a: {min_sales:,}\u5186\")  # \u6700\u4f4e\u58f2\u4e0a: 95,000\u5186\n<\/code><\/pre>\n<h3>\u30ad\u30fc\u3068\u5024\u3092\u540c\u6642\u306b\u53d6\u5f97<\/h3>\n<pre><code class=\"language-python\">temperatures = {'\u6771\u4eac': 25, '\u5927\u962a': 28, '\u672d\u5e4c': 18, '\u798f\u5ca1': 30}\n\n# items()\u3068lambda\u3092\u4f7f\u7528\nmax_item = max(temperatures.items(), key=lambda x: x[1])\nmin_item = min(temperatures.items(), key=lambda x: x[1])\n\nprint(f\"\u6700\u9ad8\u6c17\u6e29: {max_item[0]} ({max_item[1]}\u00b0C)\")  # \u6700\u9ad8\u6c17\u6e29: \u798f\u5ca1 (30\u00b0C)\nprint(f\"\u6700\u4f4e\u6c17\u6e29: {min_item[0]} ({min_item[1]}\u00b0C)\")  # \u6700\u4f4e\u6c17\u6e29: \u672d\u5e4c (18\u00b0C)\n<\/code><\/pre>\n<h2>\u8907\u6570\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3092\u53d6\u5f97<\/h2>\n<h3>\u540c\u3058\u5024\u3092\u6301\u3064\u5168\u3066\u306e\u30ad\u30fc\u3092\u53d6\u5f97<\/h3>\n<pre><code class=\"language-python\">scores = {'\u592a\u90ce': 85, '\u82b1\u5b50': 92, '\u6b21\u90ce': 92, '\u7f8e\u9999': 85}\n\ndef find_all_max_keys(dictionary):\n    \"\"\"\u6700\u5927\u5024\u3092\u6301\u3064\u5168\u3066\u306e\u30ad\u30fc\u3092\u53d6\u5f97\"\"\"\n    max_value = max(dictionary.values())\n    return [key for key, value in dictionary.items() if value == max_value]\n\ndef find_all_min_keys(dictionary):\n    \"\"\"\u6700\u5c0f\u5024\u3092\u6301\u3064\u5168\u3066\u306e\u30ad\u30fc\u3092\u53d6\u5f97\"\"\"\n    min_value = min(dictionary.values())\n    return [key for key, value in dictionary.items() if value == min_value]\n\nmax_students = find_all_max_keys(scores)\nmin_students = find_all_min_keys(scores)\n\nprint(f\"\u6700\u9ad8\u5f97\u70b9\u306e\u5b66\u751f: {max_students}\")  # ['\u82b1\u5b50', '\u6b21\u90ce']\nprint(f\"\u6700\u4f4e\u5f97\u70b9\u306e\u5b66\u751f: {min_students}\")  # ['\u592a\u90ce', '\u7f8e\u9999']\n<\/code><\/pre>\n<h3>\u4e0a\u4f4dN\u4ef6\u3092\u53d6\u5f97<\/h3>\n<pre><code class=\"language-python\">city_population = {\n    '\u6771\u4eac': 13960000,\n    '\u6a2a\u6d5c': 3750000,\n    '\u5927\u962a': 2740000,\n    '\u540d\u53e4\u5c4b': 2330000,\n    '\u672d\u5e4c': 1960000\n}\n\n# \u4eba\u53e3\u306e\u591a\u3044\u9806\u306b\u30bd\u30fc\u30c8\nsorted_cities = sorted(city_population.items(), key=lambda x: x[1], reverse=True)\n\n# \u4e0a\u4f4d3\u90fd\u5e02\ntop_3 = sorted_cities[:3]\nprint(\"\u4eba\u53e3\u4e0a\u4f4d3\u90fd\u5e02:\")\nfor i, (city, population) in enumerate(top_3, 1):\n    print(f\"{i}. {city}: {population:,}\u4eba\")\n<\/code><\/pre>\n<h3>\u6761\u4ef6\u4ed8\u304d\u3067\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3092\u53d6\u5f97<\/h3>\n<pre><code class=\"language-python\">products = {\n    '\u30ce\u30fc\u30c8PC': 80000,\n    '\u30de\u30a6\u30b9': 2000,\n    '\u30ad\u30fc\u30dc\u30fc\u30c9': 5000,\n    '\u30e2\u30cb\u30bf\u30fc': 25000,\n    '\u30b9\u30d4\u30fc\u30ab\u30fc': 8000\n}\n\n# 10000\u5186\u4ee5\u4e0a\u306e\u5546\u54c1\u3067\u6700\u5b89\u5024\u3092\u63a2\u3059\nexpensive_products = {k: v for k, v in products.items() if v &gt;= 10000}\nif expensive_products:\n    cheapest_expensive = min(expensive_products, key=expensive_products.get)\n    print(f\"\u9ad8\u984d\u5546\u54c1\u306e\u6700\u5b89\u5024: {cheapest_expensive} ({expensive_products[cheapest_expensive]:,}\u5186)\")\n<\/code><\/pre>\n<h2>\u5b9f\u8df5\u7684\u306a\u5fdc\u7528\u4f8b<\/h2>\n<h3>\u6210\u7e3e\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0<\/h3>\n<pre><code class=\"language-python\">class GradeAnalyzer:\n    def __init__(self, grades):\n        self.grades = grades\n    \n    def get_top_student(self):\n        \"\"\"\u6700\u9ad8\u5f97\u70b9\u306e\u5b66\u751f\u3092\u53d6\u5f97\"\"\"\n        if not self.grades:\n            return None, None\n        max_key = max(self.grades, key=self.grades.get)\n        return max_key, self.grades[max_key]\n    \n    def get_bottom_student(self):\n        \"\"\"\u6700\u4f4e\u5f97\u70b9\u306e\u5b66\u751f\u3092\u53d6\u5f97\"\"\"\n        if not self.grades:\n            return None, None\n        min_key = min(self.grades, key=self.grades.get)\n        return min_key, self.grades[min_key]\n    \n    def get_grade_stats(self):\n        \"\"\"\u6210\u7e3e\u7d71\u8a08\u3092\u53d6\u5f97\"\"\"\n        if not self.grades:\n            return {}\n        \n        values = list(self.grades.values())\n        return {\n            'highest': max(values),\n            'lowest': min(values),\n            'average': sum(values) \/ len(values),\n            'count': len(values)\n        }\n\n# \u4f7f\u7528\u4f8b\nstudent_scores = {'\u592a\u90ce': 85, '\u82b1\u5b50': 92, '\u6b21\u90ce': 78, '\u7f8e\u9999': 89, '\u5065\u592a': 94}\nanalyzer = GradeAnalyzer(student_scores)\n\ntop_student, top_score = analyzer.get_top_student()\nbottom_student, bottom_score = analyzer.get_bottom_student()\n\nprint(f\"\u6700\u512a\u79c0: {top_student} ({top_score}\u70b9)\")\nprint(f\"\u8981\u52aa\u529b: {bottom_student} ({bottom_score}\u70b9)\")\nprint(f\"\u7d71\u8a08: {analyzer.get_grade_stats()}\")\n<\/code><\/pre>\n<h3>\u58f2\u4e0a\u5206\u6790\u30b7\u30b9\u30c6\u30e0<\/h3>\n<pre><code class=\"language-python\">monthly_sales = {\n    '1\u6708': 850000, '2\u6708': 920000, '3\u6708': 780000,\n    '4\u6708': 1100000, '5\u6708': 950000, '6\u6708': 880000,\n    '7\u6708': 1200000, '8\u6708': 990000, '9\u6708': 1050000,\n    '10\u6708': 1150000, '11\u6708': 1300000, '12\u6708': 1400000\n}\n\ndef analyze_sales(sales_data):\n    \"\"\"\u58f2\u4e0a\u5206\u6790\"\"\"\n    best_month = max(sales_data, key=sales_data.get)\n    worst_month = min(sales_data, key=sales_data.get)\n    \n    total_sales = sum(sales_data.values())\n    avg_sales = total_sales \/ len(sales_data)\n    \n    # \u5e73\u5747\u4ee5\u4e0a\u306e\u6708\u3092\u53d6\u5f97\n    above_avg = {k: v for k, v in sales_data.items() if v &gt; avg_sales}\n    \n    return {\n        'best_month': (best_month, sales_data[best_month]),\n        'worst_month': (worst_month, sales_data[worst_month]),\n        'total': total_sales,\n        'average': avg_sales,\n        'above_average_months': len(above_avg)\n    }\n\nresults = analyze_sales(monthly_sales)\nprint(f\"\u6700\u9ad8\u58f2\u4e0a\u6708: {results['best_month'][0]} ({results['best_month'][1]:,}\u5186)\")\nprint(f\"\u6700\u4f4e\u58f2\u4e0a\u6708: {results['worst_month'][0]} ({results['worst_month'][1]:,}\u5186)\")\nprint(f\"\u5e73\u5747\u4ee5\u4e0a\u306e\u6708\u6570: {results['above_average_months']}\u30f6\u6708\")\n<\/code><\/pre>\n<h3>\u682a\u4fa1\u5206\u6790\u3067\u306e\u6d3b\u7528<\/h3>\n<pre><code class=\"language-python\">stock_prices = {\n    'AAPL': 175.50,\n    'GOOGL': 2800.25,\n    'MSFT': 340.75,\n    'AMZN': 3400.80,\n    'TSLA': 850.60\n}\n\ndef stock_analysis(prices):\n    \"\"\"\u682a\u4fa1\u5206\u6790\"\"\"\n    # \u6700\u9ad8\u4fa1\u683c\u3068\u6700\u4f4e\u4fa1\u683c\u306e\u9298\u67c4\n    highest_stock = max(prices, key=prices.get)\n    lowest_stock = min(prices, key=prices.get)\n    \n    # \u4fa1\u683c\u5e2f\u306b\u3088\u308b\u5206\u985e\n    price_ranges = {\n        'ultra_high': {},  # $2000\u4ee5\u4e0a\n        'high': {},        # $500-$1999\n        'medium': {},      # $100-$499\n        'low': {}          # $100\u672a\u6e80\n    }\n    \n    for stock, price in prices.items():\n        if price &gt;= 2000:\n            price_ranges['ultra_high'][stock] = price\n        elif price &gt;= 500:\n            price_ranges['high'][stock] = price\n        elif price &gt;= 100:\n            price_ranges['medium'][stock] = price\n        else:\n            price_ranges['low'][stock] = price\n    \n    return {\n        'highest': (highest_stock, prices[highest_stock]),\n        'lowest': (lowest_stock, prices[lowest_stock]),\n        'ranges': price_ranges\n    }\n\nanalysis = stock_analysis(stock_prices)\nprint(f\"\u6700\u9ad8\u4fa1\u683c: {analysis['highest'][0]} (${analysis['highest'][1]})\")\nprint(f\"\u6700\u4f4e\u4fa1\u683c: {analysis['lowest'][0]} (${analysis['lowest'][1]})\")\n<\/code><\/pre>\n<h2>\u30cd\u30b9\u30c8\u3057\u305f\u8f9e\u66f8\u3067\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024<\/h2>\n<h3>\u4e8c\u968e\u5c64\u8f9e\u66f8\u3067\u306e\u51e6\u7406<\/h3>\n<pre><code class=\"language-python\">department_scores = {\n    '\u55b6\u696d\u90e8': {'\u592a\u90ce': 85, '\u82b1\u5b50': 92, '\u6b21\u90ce': 78},\n    '\u958b\u767a\u90e8': {'\u7f8e\u9999': 89, '\u5065\u592a': 94, '\u7531\u7d00': 87},\n    '\u7dcf\u52d9\u90e8': {'\u660e\u5b50': 91, '\u96c5\u4eba': 83, '\u6075\u5b50': 88}\n}\n\ndef find_overall_top_performer(departments):\n    \"\"\"\u5168\u90e8\u7f72\u304b\u3089\u6700\u9ad8\u5f97\u70b9\u8005\u3092\u691c\u7d22\"\"\"\n    all_scores = {}\n    \n    for dept, scores in departments.items():\n        for name, score in scores.items():\n            all_scores[f\"{dept}_{name}\"] = score\n    \n    if not all_scores:\n        return None, None, None\n    \n    top_key = max(all_scores, key=all_scores.get)\n    dept, name = top_key.split('_', 1)\n    \n    return dept, name, all_scores[top_key]\n\ndept, name, score = find_overall_top_performer(department_scores)\nprint(f\"\u5168\u793e\u6700\u9ad8\u5f97\u70b9: {dept} {name} ({score}\u70b9)\")  # \u5168\u793e\u6700\u9ad8\u5f97\u70b9: \u958b\u767a\u90e8 \u5065\u592a (94\u70b9)\n<\/code><\/pre>\n<h3>\u90e8\u7f72\u5225\u306e\u7d71\u8a08<\/h3>\n<pre><code class=\"language-python\">def department_stats(departments):\n    \"\"\"\u90e8\u7f72\u5225\u7d71\u8a08\"\"\"\n    stats = {}\n    \n    for dept, scores in departments.items():\n        if not scores:\n            continue\n            \n        top_performer = max(scores, key=scores.get)\n        bottom_performer = min(scores, key=scores.get)\n        avg_score = sum(scores.values()) \/ len(scores)\n        \n        stats[dept] = {\n            'top': (top_performer, scores[top_performer]),\n            'bottom': (bottom_performer, scores[bottom_performer]),\n            'average': avg_score,\n            'count': len(scores)\n        }\n    \n    return stats\n\ndept_stats = department_stats(department_scores)\nfor dept, info in dept_stats.items():\n    print(f\"{dept}: \u30c8\u30c3\u30d7 {info['top'][0]}({info['top'][1]}\u70b9), \"\n          f\"\u5e73\u5747 {info['average']:.1f}\u70b9\")\n<\/code><\/pre>\n<h2>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/h2>\n<h3>\u5927\u91cf\u30c7\u30fc\u30bf\u3067\u306e\u52b9\u7387\u7684\u306a\u51e6\u7406<\/h3>\n<pre><code class=\"language-python\">import timeit\n\n# \u5927\u91cf\u30c7\u30fc\u30bf\u306e\u6e96\u5099\nlarge_dict = {f'item_{i}': i * 1.5 for i in range(100000)}\n\n# \u65b9\u6cd51: max()\u3068key\u5f15\u6570\ndef method1(dictionary):\n    max_key = max(dictionary, key=dictionary.get)\n    return max_key, dictionary[max_key]\n\n# \u65b9\u6cd52: items()\u3068max()\ndef method2(dictionary):\n    return max(dictionary.items(), key=lambda x: x[1])\n\n# \u65b9\u6cd53: \u624b\u52d5\u30eb\u30fc\u30d7\ndef method3(dictionary):\n    max_key = None\n    max_value = float('-inf')\n    for key, value in dictionary.items():\n        if value &gt; max_value:\n            max_key = key\n            max_value = value\n    return max_key, max_value\n\n# \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c6\u30b9\u30c8\uff08\u5c0f\u898f\u6a21\u30c7\u30fc\u30bf\u3067\u5b9f\u884c\uff09\nsmall_dict = {f'item_{i}': i * 1.5 for i in range(1000)}\n\ntime1 = timeit.timeit(lambda: method1(small_dict), number=1000)\ntime2 = timeit.timeit(lambda: method2(small_dict), number=1000)\ntime3 = timeit.timeit(lambda: method3(small_dict), number=1000)\n\nprint(f\"max()\u3068key: {time1:.4f}\u79d2\")\nprint(f\"items()\u3068max(): {time2:.4f}\u79d2\")\nprint(f\"\u624b\u52d5\u30eb\u30fc\u30d7: {time3:.4f}\u79d2\")\n<\/code><\/pre>\n<h3>\u30e1\u30e2\u30ea\u52b9\u7387\u7684\u306a\u51e6\u7406<\/h3>\n<pre><code class=\"language-python\">def streaming_max_min(dictionary):\n    \"\"\"\u30e1\u30e2\u30ea\u52b9\u7387\u7684\u306a\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u691c\u7d22\"\"\"\n    if not dictionary:\n        return None, None\n    \n    # \u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f7f\u7528\u3057\u3066\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u5236\n    iterator = iter(dictionary.items())\n    first_item = next(iterator)\n    \n    max_item = min_item = first_item\n    \n    for key, value in iterator:\n        if value &gt; max_item[1]:\n            max_item = (key, value)\n        elif value &lt; min_item[1]:\n            min_item = (key, value)\n    \n    return max_item, min_item\n\n# \u4f7f\u7528\u4f8b\ndata = {'a': 10, 'b': 5, 'c': 15, 'd': 3, 'e': 12}\nmax_result, min_result = streaming_max_min(data)\nprint(f\"\u6700\u5927: {max_result}, \u6700\u5c0f: {min_result}\")\n<\/code><\/pre>\n<h2>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0<\/h2>\n<h3>\u5b89\u5168\u306a\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u53d6\u5f97<\/h3>\n<pre><code class=\"language-python\">def safe_find_extreme(dictionary, find_max=True, default=None):\n    \"\"\"\u5b89\u5168\u306a\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u691c\u7d22\"\"\"\n    if not dictionary:\n        return default\n    \n    try:\n        # \u6570\u5024\u306e\u307f\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\n        numeric_dict = {\n            k: v for k, v in dictionary.items() \n            if isinstance(v, (int, float)) and not isinstance(v, bool)\n        }\n        \n        if not numeric_dict:\n            return default\n        \n        if find_max:\n            key = max(numeric_dict, key=numeric_dict.get)\n        else:\n            key = min(numeric_dict, key=numeric_dict.get)\n        \n        return key, numeric_dict[key]\n        \n    except (TypeError, ValueError) as e:\n        print(f\"\u30a8\u30e9\u30fc: {e}\")\n        return default\n\n# \u4f7f\u7528\u4f8b\nmixed_data = {'a': 10, 'b': 'text', 'c': 15.5, 'd': True, 'e': None}\n\nmax_result = safe_find_extreme(mixed_data, find_max=True)\nmin_result = safe_find_extreme(mixed_data, find_max=False)\n\nprint(f\"\u6700\u5927: {max_result}\")  # \u6700\u5927: ('c', 15.5)\nprint(f\"\u6700\u5c0f: {min_result}\")  # \u6700\u5c0f: ('a', 10)\n<\/code><\/pre>\n<h3>\u578b\u30c1\u30a7\u30c3\u30af\u4ed8\u304d\u306e\u691c\u7d22<\/h3>\n<pre><code class=\"language-python\">from typing import Dict, Union, Optional, Tuple\n\ndef typed_extreme_finder(\n    dictionary: Dict[str, Union[int, float]], \n    find_max: bool = True\n) -&gt; Optional[Tuple[str, Union[int, float]]]:\n    \"\"\"\u578b\u5b89\u5168\u306a\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u691c\u7d22\"\"\"\n    \n    if not dictionary:\n        return None\n    \n    # \u578b\u30c1\u30a7\u30c3\u30af\n    valid_items = []\n    for key, value in dictionary.items():\n        if isinstance(value, (int, float)) and not isinstance(value, bool):\n            valid_items.append((key, value))\n        else:\n            print(f\"\u8b66\u544a: '{key}': {value} \u306f\u6570\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\")\n    \n    if not valid_items:\n        return None\n    \n    if find_max:\n        return max(valid_items, key=lambda x: x[1])\n    else:\n        return min(valid_items, key=lambda x: x[1])\n\n# \u4f7f\u7528\u4f8b\ntest_data: Dict[str, Union[int, float, str]] = {\n    'score1': 85,\n    'score2': 92.5,\n    'name': 'test',  # \u6587\u5b57\u5217\n    'score3': 78\n}\n\nmax_score = typed_extreme_finder(test_data, find_max=True)\nprint(f\"\u6700\u9ad8\u5f97\u70b9: {max_score}\")  # \u6700\u9ad8\u5f97\u70b9: ('score2', 92.5)\n<\/code><\/pre>\n<h2>\u5b9f\u7528\u7684\u306a\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570<\/h2>\n<h3>\u6c4e\u7528\u7684\u306a\u7d71\u8a08\u5206\u6790\u95a2\u6570<\/h3>\n<pre><code class=\"language-python\">def dict_statistics(dictionary, numeric_only=True):\n    \"\"\"\u8f9e\u66f8\u306e\u7d71\u8a08\u60c5\u5831\u3092\u8a08\u7b97\"\"\"\n    if not dictionary:\n        return None\n    \n    if numeric_only:\n        # \u6570\u5024\u306e\u307f\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\n        values = [v for v in dictionary.values() \n                 if isinstance(v, (int, float)) and not isinstance(v, bool)]\n    else:\n        values = list(dictionary.values())\n    \n    if not values:\n        return None\n    \n    # \u7d71\u8a08\u8a08\u7b97\n    max_val = max(values)\n    min_val = min(values)\n    avg_val = sum(values) \/ len(values)\n    \n    # \u5bfe\u5fdc\u3059\u308b\u30ad\u30fc\u3092\u691c\u7d22\n    max_keys = [k for k, v in dictionary.items() if v == max_val]\n    min_keys = [k for k, v in dictionary.items() if v == min_val]\n    \n    return {\n        'max_value': max_val,\n        'max_keys': max_keys,\n        'min_value': min_val,\n        'min_keys': min_keys,\n        'average': avg_val,\n        'count': len(values),\n        'total': sum(values)\n    }\n\n# \u4f7f\u7528\u4f8b\nsales_data = {'\u592a\u90ce': 1200000, '\u82b1\u5b50': 980000, '\u6b21\u90ce': 1200000, '\u7f8e\u9999': 1500000}\nstats = dict_statistics(sales_data)\n\nprint(f\"\u6700\u9ad8\u58f2\u4e0a: {stats['max_keys']} ({stats['max_value']:,}\u5186)\")\nprint(f\"\u6700\u4f4e\u58f2\u4e0a: {stats['min_keys']} ({stats['min_value']:,}\u5186)\")\nprint(f\"\u5e73\u5747\u58f2\u4e0a: {stats['average']:,.0f}\u5186\")\n<\/code><\/pre>\n<h3>\u30e9\u30f3\u30ad\u30f3\u30b0\u751f\u6210\u5668<\/h3>\n<pre><code class=\"language-python\">def create_ranking(dictionary, reverse=True, limit=None):\n    \"\"\"\u8f9e\u66f8\u304b\u3089\u30e9\u30f3\u30ad\u30f3\u30b0\u3092\u751f\u6210\"\"\"\n    if not dictionary:\n        return []\n    \n    # \u6570\u5024\u306e\u5024\u306e\u307f\u3092\u5bfe\u8c61\n    numeric_items = [\n        (k, v) for k, v in dictionary.items() \n        if isinstance(v, (int, float)) and not isinstance(v, bool)\n    ]\n    \n    # \u30bd\u30fc\u30c8\n    sorted_items = sorted(numeric_items, key=lambda x: x[1], reverse=reverse)\n    \n    # \u5236\u9650\u9069\u7528\n    if limit:\n        sorted_items = sorted_items[:limit]\n    \n    # \u30e9\u30f3\u30ad\u30f3\u30b0\u5f62\u5f0f\u3067\u8fd4\u3059\n    ranking = []\n    for i, (key, value) in enumerate(sorted_items, 1):\n        ranking.append({\n            'rank': i,\n            'key': key,\n            'value': value\n        })\n    \n    return ranking\n\n# \u4f7f\u7528\u4f8b\ntest_scores = {'\u592a\u90ce': 85, '\u82b1\u5b50': 92, '\u6b21\u90ce': 78, '\u7f8e\u9999': 89, '\u5065\u592a': 94}\ntop_3 = create_ranking(test_scores, reverse=True, limit=3)\n\nprint(\"\u6210\u7e3e\u4e0a\u4f4d3\u540d:\")\nfor item in top_3:\n    print(f\"{item['rank']}\u4f4d: {item['key']} ({item['value']}\u70b9)\")\n<\/code><\/pre>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>Python\u8f9e\u66f8\u304b\u3089\u5024\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3068\u305d\u306e\u30ad\u30fc\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u306f\u3001\u30c7\u30fc\u30bf\u5206\u6790\u3084\u7d71\u8a08\u51e6\u7406\u306b\u304a\u3044\u3066\u975e\u5e38\u306b\u91cd\u8981\u306a\u6280\u8853\u3067\u3059\u3002\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u3067\u6b63\u78ba\u306a\u51e6\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><strong>\u57fa\u672c\u7684\u306a\u624b\u6cd5<\/strong><\/p>\n<ul>\n<li><code>max(dict, key=dict.get)<\/code>\u304c\u6700\u3082\u30b7\u30f3\u30d7\u30eb\u3067\u63a8\u5968\u3055\u308c\u308b\u65b9\u6cd5<\/li>\n<li><code>max(dict.items(), key=lambda x: x[1])<\/code>\u3067\u30ad\u30fc\u3068\u5024\u3092\u540c\u6642\u306b\u53d6\u5f97<\/li>\n<\/ul>\n<p><strong>\u5b9f\u7528\u7684\u306a\u30dd\u30a4\u30f3\u30c8<\/strong><\/p>\n<ul>\n<li>\u540c\u3058\u5024\u3092\u6301\u3064\u8907\u6570\u306e\u30ad\u30fc\u304c\u3042\u308b\u5834\u5408\u306e\u51e6\u7406\u3092\u8003\u616e<\/li>\n<li>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3067\u5b89\u5168\u6027\u3092\u78ba\u4fdd<\/li>\n<li>\u5927\u91cf\u30c7\u30fc\u30bf\u3067\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u91cd\u8996<\/li>\n<\/ul>\n<p><strong>\u9ad8\u5ea6\u306a\u30c6\u30af\u30cb\u30c3\u30af<\/strong><\/p>\n<ul>\n<li>\u30cd\u30b9\u30c8\u3057\u305f\u8f9e\u66f8\u3067\u306e\u968e\u5c64\u7684\u306a\u691c\u7d22<\/li>\n<li>\u6761\u4ef6\u4ed8\u304d\u3067\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u53d6\u5f97<\/li>\n<li>\u7d71\u8a08\u5206\u6790\u3084\u30e9\u30f3\u30ad\u30f3\u30b0\u751f\u6210\u3078\u306e\u5fdc\u7528<\/li>\n<\/ul>\n<p>\u3053\u308c\u3089\u306e\u6280\u8853\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u69d8\u3005\u306a\u30c7\u30fc\u30bf\u5206\u6790\u30bf\u30b9\u30af\u3092\u52b9\u7387\u7684\u306b\u51e6\u7406\u3067\u304d\u308b\u3067\u3057\u3087\u3046\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=\"iFAcWwABz0\"><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=Pryryd9oIU#?secret=iFAcWwABz0\" data-secret=\"iFAcWwABz0\" 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=\"TfQWoc1BUZ\"><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=kWnZGlOZY9#?secret=TfQWoc1BUZ\" data-secret=\"TfQWoc1BUZ\" 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=\"OpFfYbfN7p\"><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=hgXMNta2Ym#?secret=OpFfYbfN7p\" data-secret=\"OpFfYbfN7p\" 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=\"k5RoqfSNlC\"><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=MpmDLtYUQB#?secret=k5RoqfSNlC\" data-secret=\"k5RoqfSNlC\" 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=\"dAnMOd3ziD\"><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=F2QU3iXnoQ#?secret=dAnMOd3ziD\" data-secret=\"dAnMOd3ziD\" 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=\"KC0MSZ8kvF\"><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=RPkLH0uEhF#?secret=KC0MSZ8kvF\" data-secret=\"KC0MSZ8kvF\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 Python\u8f9e\u66f8\u3092\u6271\u3046\u969b\u3001\u300c\u6700\u9ad8\u5f97\u70b9\u306e\u5b66\u751f\u306f\u8ab0\uff1f\u300d\u300c\u58f2\u4e0a\u304c\u6700\u3082\u5c11\u306a\u3044\u6708\u306f\uff1f\u300d\u3068\u3044\u3063\u305f\u3088\u3046\u306b\u3001\u5024\u306e\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3068\u305d\u308c\u306b\u5bfe\u5fdc\u3059\u308b\u30ad\u30fc\u3092\u898b\u3064\u3051\u305f\u3044\u5834\u9762\u306f\u975e\u5e38\u306b\u3088\u304f\u3042\u308a\u307e\u3059\u3002\u672c\u8a18\u4e8b\u3067\u306f\u3001\u8f9e\u66f8\u304b\u3089\u52b9\u7387\u7684\u306b\u6700\u5927\u5024\u30fb\u6700\u5c0f\u5024\u3068\u305d\u306e [&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-43935","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-column"],"views":126,"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\/43935","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=43935"}],"version-history":[{"count":0,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts\/43935\/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=43935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/categories?post=43935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/tags?post=43935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}