<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>「keys」タグの記事一覧Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/tag/keys/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Sun, 11 Jan 2026 08:30:39 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>「keys」タグの記事一覧Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【pandas】SeriesやDataFrameを連結する方法 ~ concat ~</title>
		<link>https://tech.nkhn37.net/pandas-dataframe-concat/</link>
					<comments>https://tech.nkhn37.net/pandas-dataframe-concat/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 18 Mar 2022 20:00:00 +0000</pubDate>
				<category><![CDATA[pandas]]></category>
		<category><![CDATA[append]]></category>
		<category><![CDATA[concat]]></category>
		<category><![CDATA[ignore_index]]></category>
		<category><![CDATA[inner]]></category>
		<category><![CDATA[join]]></category>
		<category><![CDATA[keys]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[outer]]></category>
		<category><![CDATA[verify_integrity]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=3154</guid>

					<description><![CDATA[pandasのSeriesやDataFrameを連結する方法について解説します。 SeriesやDataFrameの連結方法 データ分析の際には、異なる種類のデータソースの組み合わせから深い知見や研究成果が得られるという [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">pandasの<span class="marker"><strong>Seriesや</strong></span><span class="marker"><strong>DataFrameを連結する方法</strong></span>について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">SeriesやDataFrameの連結方法</h2>



<p class="wp-block-paragraph">データ分析の際には、異なる種類のデータソースの組み合わせから深い知見や研究成果が得られるということがほとんどです。ここでいう「組み合わせ」とは2つのデータセットを単に連結するだけではなく、重複するデータを適切に処理することも含まれます。</p>



<p class="wp-block-paragraph">pandasで中心的なデータ構造はSeriesやDataFrameです。これらは連結処理を念頭に置いて設計されているため、データを簡単に連結することができます。具体的には、pandasのSeriesやDataFrameを連結したい場合、<span class="marker"><strong><code>concat</code></strong></span>関数を使用することができます。</p>



<p class="wp-block-paragraph">この記事では、pandasの<code>concat</code>関数を用いたデータの連結方法を説明します。</p>



<h4 class="wp-block-heading jinr-heading d--bold">concat関数の基本的な使い方</h4>



<p class="wp-block-paragraph">SeriesやDataFrameを連結する場合には<span class="marker"><strong><code>concat</code></strong></span>関数を使用します。以下の簡単な例を見てみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pandas as pd

# ===== Seriesの連結
# データの準備
ser1 = pd.Series(['A', 'B', 'C', 'D', 'E'], index=[1, 2, 3, 4, 5])
ser2 = pd.Series(['V', 'W', 'X', 'Y', 'Z'], index=[6, 7, 8, 9, 10])

# 連結
ser_concat = pd.concat([ser1, ser2])
print(ser_concat, '\n')

# ===== DataFrameの連結
# データの準備
df1 = pd.DataFrame([['A', 'B'], ['C', 'D'], ['E', 'F']],
                   index=[1, 2, 3], columns=['attr1', 'attr2'])
df2 = pd.DataFrame([['U', 'V'], ['W', 'X'], ['Y', 'Z']],
                   index=[4, 5, 6], columns=['attr1', 'attr2'])

# 連結
df_concat = pd.concat([df1, df2])
print(df_concat)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
1     A
2     B
3     C
4     D
5     E
6     V
7     W
8     X
9     Y
10    Z
dtype: object 

  attr1 attr2
1     A     B
2     C     D
3     E     F
4     U     V
5     W     X
6     Y     Z</pre>



<p class="wp-block-paragraph">上記では、SeriesとDataFrameをそれぞれ連結をしています。使用方法は簡単で、<code>concat</code>関数の引数に連結したい対象のSeriesやDataFrameを含むリストを指定するだけです。</p>



<h4 class="wp-block-heading jinr-heading d--bold">インデックスが重複している場合</h4>



<p class="wp-block-paragraph"><code>concat</code>関数の特徴として、連結するデータのインデックスが重複していても、それぞれのインデックスが保持される点があります。以下は、インデックス2, 3が重複しているケースです。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pandas as pd

# ===== DataFrameの連結
# データの準備
df1 = pd.DataFrame([['A', 'B'], ['C', 'D'], ['E', 'F']],
                   index=[1, 2, 3], columns=['attr1', 'attr2'])
df2 = pd.DataFrame([['U', 'V'], ['W', 'X'], ['Y', 'Z']],
                   index=[2, 3, 4], columns=['attr1', 'attr2'])

# 連結 (インデックスが重複していても保持する)
df_concat = pd.concat([df1, df2])
print(df_concat)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
  attr1 attr2
1     A     B
2     C     D
3     E     F
2     U     V
3     W     X
4     Y     Z</pre>



<p class="wp-block-paragraph">上記結果を見ると、インデックス2, 3が複数回出現していることが分かります。</p>



<p class="wp-block-paragraph">このような状況でも問題がなければそのままで構いません。もし、重複が問題になる場合は、後述する<code>verify_integrity</code>や<code>ignore_index</code>を使った対処法があります。</p>



<h4 class="wp-block-heading jinr-heading d--bold">重複がある場合に例外を出す ~ verify_integrity ~</h4>



<p class="wp-block-paragraph"><code>concat</code>関数は、インデックスが重複していても保持します。インデックスの重複が問題になる場合、重複があることを例外として出して対処する方法があります。</p>



<p class="wp-block-paragraph">重複した場合に例外を出すには、以下のように<span class="marker"><strong><code>verify_integrity</code></strong></span>を<code>True</code>に設定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pandas as pd

# ===== DataFrameの連結
df1 = pd.DataFrame([['A', 'B'], ['C', 'D'], ['E', 'F']],
                   index=[1, 2, 3], columns=['attr1', 'attr2'])
df2 = pd.DataFrame([['U', 'V'], ['W', 'X'], ['Y', 'Z']],
                   index=[2, 3, 4], columns=['attr1', 'attr2'])

# 連結 (インデックス重複時は例外:ValueError)
try:
    df_concat = pd.concat([df1, df2], verify_integrity=True)
    print(df_concat)
except ValueError as ex:
    print(ex)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
Indexes have overlapping values: Int64Index([2, 3], dtype='int64')</pre>



<p class="wp-block-paragraph"><code>verify_integrity</code>を<code>True</code>に設定すると、インデックスが重複していた場合には、<code>ValueError</code>の例外が発生します。この例外をキャッチすることで、処理を変更することが可能です。</p>



<h4 class="wp-block-heading jinr-heading d--bold">インデックスを無視する ~ ignore_index ~</h4>



<p class="wp-block-paragraph">インデックスが重複しているケースで、もともとのインデックスが意味を持たない場合は、インデックスを無視して新しいインデックスを振ることが可能です。</p>



<p class="wp-block-paragraph">インデックスを無視して新しいインデックスを振るには、以下のように<span class="marker"><strong><code>ignore_index</code></strong></span>をTrueに設定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pandas as pd

# ===== DataFrameの連結
df1 = pd.DataFrame([['A', 'B'], ['C', 'D'], ['E', 'F']],
                   index=[1, 2, 3], columns=['attr1', 'attr2'])
df2 = pd.DataFrame([['U', 'V'], ['W', 'X'], ['Y', 'Z']],
                   index=[2, 3, 4], columns=['attr1', 'attr2'])

# 連結 (インデックスを無視する)
df_concat = pd.concat([df1, df2], ignore_index=True)
print(df_concat)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
  attr1 attr2
0     A     B
1     C     D
2     E     F
3     U     V
4     W     X
5     Y     Z</pre>



<p class="wp-block-paragraph">上記結果から、もともとのインデックスが無視され、新しいインデックスが0から設定されてデータが結合されていることが分かります。</p>



<h4 class="wp-block-heading jinr-heading d--bold">連結するデータにキーを指定して階層型インデックス（マルチインデックス）にする ~ keys ~</h4>



<p class="wp-block-paragraph">データを連結する際に、元のデータのキーを残して結合したい場合は、階層型インデックス（マルチインデックス）を使用して対応することができます。階層型インデックスにするには、以下のように<span class="marker"><strong><code>keys</code></strong></span>で各データのキー情報を指定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pandas as pd

# ===== DataFrameの連結
# データの準備
df1 = pd.DataFrame([['A', 'B'], ['C', 'D'], ['E', 'F']],
                   index=[1, 2, 3], columns=['attr1', 'attr2'])
df2 = pd.DataFrame([['U', 'V'], ['W', 'X'], ['Y', 'Z']],
                   index=[2, 3, 4], columns=['attr1', 'attr2'])

# 連結 (階層型のインデックスにする)
df_concat = pd.concat([df1, df2], keys=['D1', 'D2'])
print(df_concat)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
     attr1 attr2
D1 1     A     B
   2     C     D
   3     E     F
D2 2     U     V
   3     W     X
   4     Y     Z</pre>



<p class="wp-block-paragraph">上記の例では<code>"D1"</code>、<code>"D2"</code>を指定しています。結果として、それぞれのキーの下に元のデータのインデックスが階層型インデックスとして配置され、データが連結されています。</p>



<h4 class="wp-block-heading jinr-heading d--bold">積集合での連結 ~ join=&#8221;inner&#8221; ~</h4>



<p class="wp-block-paragraph">上記で見てきた例では、列名が全く同じデータを連結してきました。では、列名が異なるデータを連結する場合はどうなるでしょうか。以下の例で見てみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pandas as pd

# ===== DataFrameの連結
df1 = pd.DataFrame([['A', 'B'], ['C', 'D'], ['E', 'F']],
                   index=[1, 2, 3], columns=['attr1', 'attr2'])
df2 = pd.DataFrame([['U', 'V'], ['W', 'X'], ['Y', 'Z']],
                   index=[4, 5, 6], columns=['attr2', 'attr3'])

# 連結 (デフォルトはjoin='outer')
df_concat = pd.concat([df1, df2])
print(df_concat, '\n')

# 連結 (join='inner')
df_concat = pd.concat([df1, df2], join='inner')
print(df_concat)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
  attr1 attr2 attr3
1     A     B   NaN
2     C     D   NaN
3     E     F   NaN
4   NaN     U     V
5   NaN     W     X
6   NaN     Y     Z 

  attr2
1     B
2     D
3     F
4     U
5     W
6     Y</pre>



<p class="wp-block-paragraph">concat関数は、デフォルトでは<span class="marker"><strong><code>join="outer"</code></strong></span>となっています。<code>outer</code>は和集合を意味し、両方の列を含んだ連結が行われ、値がない部分は上記結果のように<code>NaN</code>となります。</p>



<p class="wp-block-paragraph">もし、それぞれのデータセットに存在する列のみを連結したい場合は、<span class="marker"><strong><code>join="inner"</code></strong></span>を指定します。これにより積集合としての連結が行われます。上記結果を見ると、<code>join="inner"</code>を指定した場合は、両方に存在する<code>"attr2"</code>列のみ連結したデータが得られていることが分かります。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph"><code>concat</code> 関数の公式ドキュメントは<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html" target="_blank" rel="noreferrer noopener">こちら</a>を参照してください。</p>
</div>
		</div></section>



<h3 class="wp-block-heading jinr-heading d--bold">appendメソッドによるデータ連結【非推奨】</h3>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--heading-iconbox1 ">
			<div class="a--heading-iconbox-title">
			<div class="a--iconbox-title-icon"><i class="jif jin-ifont-caution" aria-hidden="true"></i></div>
			<div class="a--iconbox-title-text">注意点</div>
			</div>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph"><code>append</code> メソッドは、1.4.0から非推奨になっており、将来的には pandas から削除される予定です。バージョンによっては <code>concat</code> 関数を使用するよう警告が表示される場合があります。</p>



<p class="wp-block-paragraph"><code>append</code> メソッドは使用可能な場合であっても、データ連結の際は <code>concat</code> 関数の使用を推奨します。</p>
</div>
		</div></section>



<h2 class="wp-block-heading jinr-heading d--bold">その他のデータの結合方法（merge, join）</h2>



<p class="wp-block-paragraph">上記では、<code>concat</code>関数を用いた連結方法について紹介しました。pandasには、他にも<span class="marker"><strong><code>merge</code></strong></span>関数や<span class="marker"><strong><code>join</code></strong></span>メソッドという強力なデータ結合方法があります。</p>



<p class="wp-block-paragraph">データベースのSQLに慣れている人にとっては、<code>merge</code>関数や<code>join</code>メソッドが理解しやすいかもしれません。これらの使用方法については「<a href="https://tech.nkhn37.net/pandas-dataframe-merge-join/" target="_blank" rel="noreferrer noopener">DataFrameを結合する方法</a>」でまとめていますので興味があれば参考にしてください。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">pandasのSeriesやDataFrameを連結する方法について解説しました。具体的には、<span class="marker"><strong><code>concat</code></strong></span>関数によるデータ連結方法について説明しました。</p>



<p class="wp-block-paragraph">データ分析では、単にデータを連結するだけではなく、重複するデータの適切な処理や、連結時に元のデータを保持しながら階層型インデックス（マルチインデックス）を作成する方法、さらに<code>outer</code>や<code>inner</code>結合を使い分けることが重要です。これらについて本記事で紹介しました。</p>



<p class="wp-block-paragraph">データ分析においては、複数のデータソースを適切に結合してから分析を行うことで、有益な情報を抽出できます。<code>concat</code>関数を利用したデータ結合に慣れることは重要です。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--heading-box8  "><div class="a--simple-box-title d--bold">ソースコード</div><div class="c--simple-box-inner">
<p class="wp-block-paragraph">上記で紹介しているソースコードについては <a href="https://github.com/nkhn37/python-tech-sample-source/tree/main/python-data-analysis/pandas/concat" target="_blank" rel="noreferrer noopener">GitHub</a> にて公開しています。参考にしていただければと思います。</p>
</div></div></section>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>

]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/pandas-dataframe-concat/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python】辞書（dict）の内容を列挙して扱う方法 ~ keys,  values, items ~</title>
		<link>https://tech.nkhn37.net/python-dict-keys-values-items/</link>
					<comments>https://tech.nkhn37.net/python-dict-keys-values-items/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 23 Jan 2021 00:00:00 +0000</pubDate>
				<category><![CDATA[辞書（dict）]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[items]]></category>
		<category><![CDATA[keys]]></category>
		<category><![CDATA[values]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=360</guid>

					<description><![CDATA[Pythonで、辞書（dict）の内容を列挙して扱う方法（keys, values, items）について解説します。 辞書（dict）の内容を列挙する Pythonプログラミングで辞書（dict）を使用する際には、キー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonで、<span class="marker"><strong>辞書（<code>dict</code>）の内容を列挙して扱う方法（<code>keys</code>, <code>values</code>, <code>items</code>）</strong></span>について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">辞書（dict）の内容を列挙する</h2>



<p class="wp-block-paragraph">Pythonプログラミングで辞書（<code>dict</code>）を使用する際には、キーや値の情報を取り出して活用したくなるケースがよくあります。</p>



<p class="wp-block-paragraph">辞書では、<span class="marker"><strong><code>key</code></strong></span>、<span class="marker"><strong><code>values</code></strong></span>、<span class="marker"><strong><code>items</code></strong></span>といったメソッドを使用することで辞書におけるキーや値の情報を取り出すことが可能です。また、これらのメソッドはイテラブル(iterable)なオブジェクトを返却するため、<code>for</code>文でよく利用されます。</p>



<p class="wp-block-paragraph">本記事では、まず各メソッドの使い方の基本と<code>for</code>文で各メソッドの返却値を扱う方法を例を使って紹介します。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox5 ">
			<i class="jif jin-ifont-v2speaker" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">イテラブル (iterable) とは、<code>for</code> で繰り返し可能なことを言います。イテラブルな型としては、リスト、タプル、辞書、集合といったものが代表的です。</p>
</div>
		</div></section>



<h3 class="wp-block-heading jinr-heading d--bold" id="辞書-dict-の内容を列挙するビューを作成する方法-keys-values-items">辞書（dict）の内容を列挙するビューを作成する方法 ~ keys, values, items ~</h3>



<h4 class="wp-block-heading jinr-heading d--bold" id="辞書-dict-のキーを列挙するビューを作成する-keysメソッド">キーを列挙するビューを作成する ~ keysメソッド ~</h4>



<p class="wp-block-paragraph">辞書のキーを列挙するビューを作成するには、以下のように<span class="marker"><strong><code>keys</code></strong></span>メソッドを使用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# keys()でキーのビューを取得する
key_v = d.keys()
print(type(key_v))
print(f"key_v: {key_v}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
&lt;class 'dict_keys'>
key_v: dict_keys(['k1', 'k2', 'k3', 'k4', 'k5'])</pre>



<p class="wp-block-paragraph"><code>keys</code>メソッドの返却値を確認すると辞書のキーの部分を列挙してとってきていることが分かります。</p>



<p class="wp-block-paragraph">また、<code>keys</code>メソッドの返却値の型は<code>dict_keys</code>クラスのオブジェクトです。この<code>dict_keys</code>クラスのオブジェクトはイテラブルなオブジェクトなので、<code>for</code>文に指定して繰り返すことができます。</p>



<h4 class="wp-block-heading jinr-heading d--bold" id="keysメソッドを使用してキーに対してfor文を実行する方法">keysメソッドを使用して、キーに対してfor文を実行する方法</h4>



<p class="wp-block-paragraph"><code>keys</code>メソッドを用いてキーに対して<code>for</code>文を実行するには以下のようにします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# for文で値を扱う
for key in d.keys():
    print(f"key: {key}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
key: k1
key: k2
key: k3
key: k4
key: k5</pre>



<h4 class="wp-block-heading jinr-heading d--bold" id="辞書-dict-の値を列挙するビューを作成する-valuesメソッド">値を列挙するビューを作成する ~ valuesメソッド~</h4>



<p class="wp-block-paragraph">辞書の値を列挙するビューを作成するには、以下のように<span class="marker"><strong><code>values</code></strong></span>メソッドを使用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# values()で値のビューを取得する
val_v = d.values()
print(type(val_v))
print(f"val_v: {val_v}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
&lt;class 'dict_values'>
val_v: dict_values([10, 20, 30, 40, 50])</pre>



<p class="wp-block-paragraph"><code>values</code>メソッドの返却値を確認すると辞書の値の部分を列挙してとってきていることが分かります。</p>



<p class="wp-block-paragraph">また、<code>values</code>メソッドの返却値の型は<code>dict_values</code>クラスのオブジェクトです。この<code>dict_values</code>クラスのオブジェクトはイテラブルなオブジェクトなので、<code>for</code>文に指定して繰り返すことができます。</p>



<h4 class="wp-block-heading jinr-heading d--bold" id="valuesメソッドを使用して値に対してfor文を実行する方法">valuesメソッドを使用して、値に対してfor文を実行する方法</h4>



<p class="wp-block-paragraph"><code>values</code>メソッドを用いて値に対して<code>for</code>文を実行するには以下のようにします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# for文で値を扱う
for value in d.values():
    print(f"value: {value}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
value: 10
value: 20
value: 30
value: 40
value: 50</pre>



<h4 class="wp-block-heading jinr-heading d--bold" id="辞書-dict-の要素を列挙するビューを作成する-itemsメソッド">要素を列挙するビューを作成する ~ itemsメソッド ~</h4>



<p class="wp-block-paragraph">辞書の要素（キー, 値）を列挙するビューを作成するには、以下のように<span class="marker"><strong><code>items</code></strong></span>メソッドを使用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# items()で要素のビューを取得する
itm_v = d.items()
print(type(itm_v))
print(f"itm_v: {itm_v}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
&lt;class 'dict_items'>
itm_v: dict_items([('k1', 10), ('k2', 20), ('k3', 30), ('k4', 40), ('k5', 50)])</pre>



<p class="wp-block-paragraph"><code>items</code>メソッドの返却値を確認すると辞書のキーと値のペアを取得できていることが分かります。</p>



<p class="wp-block-paragraph">また、<code>items</code>メソッドの返却値の型は<code>dict_items</code>クラスのオブジェクトです。この<code>dict_items</code>クラスのオブジェクトはイテラブルなオブジェクトなので、<code>for</code>文に指定して繰り返すことができます。</p>



<h4 class="wp-block-heading jinr-heading d--bold">itemsメソッドを使用して、要素に対してfor文を実行する方法</h4>



<p class="wp-block-paragraph"><code>items</code>メソッドを<code>for</code>文で扱う場合には「キーと値それぞれを取得して使う方法」と「tubple（タプル）で要素を受け取って使用する方法」があるのでそれぞれ例を見てみましょう。</p>



<h5 class="wp-block-heading jinr-heading d--bold" id="キーと値それぞれを取得して使う方法">キーと値それぞれを取得して使う方法</h5>



<p class="wp-block-paragraph"><code>items</code>メソッドを用いて要素（キー、値）に対して<code>for</code>文を実行するには以下のようにします。<code>items</code>メソッドの返却値のオブジェクトは、タプルを列挙しているものなので、<code>key</code>と<code>value</code>にアンパック代入されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# for文で要素（キー、値）を扱う
for key, value in d.items():
    print(f"key: {key}, value: {value}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
key: k1, value: 10
key: k2, value: 20
key: k3, value: 30
key: k4, value: 40
key: k5, value: 50</pre>



<h5 class="wp-block-heading jinr-heading d--bold" id="tuple-タプル-で要素を受け取って使用する方法">tuple（タプル）で要素を受け取って使用する方法</h5>



<p class="wp-block-paragraph"><code>items</code>メソッドの返却値のオブジェクトは、タプルを列挙したものであるため、以下のようにタプルとして受け取って扱うことも可能です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# for文で要素（キー、値）をタプルとして受け取って扱う
for tpl in d.items():
    print(f"key: {tpl[0]}, value: {tpl[1]}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
key: k1, value: 10
key: k2, value: 20
key: k3, value: 30
key: k4, value: 40
key: k5, value: 50</pre>



<h3 class="wp-block-heading jinr-heading d--bold" id="keys-values-itemsのビューとしての特徴">keys、values、itemsのビューとしての特徴</h3>



<p class="wp-block-paragraph"><code>keys</code>、<code>values</code>、<code>items</code>が返却するのは、辞書のコピーではなく「<span class="marker2">ビュー</span>」となっていることに注意しましょう。</p>



<p class="wp-block-paragraph">「ビュー」というその名の通り、元データを見るためのものです。つまり、<span class="marker"><strong>元データが変化するとビューとして取得したものの情報も変わる</strong></span>ので注意してください。</p>



<p class="wp-block-paragraph">実際に以下の例で見てみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">d = {"k1": 10, "k2": 20, "k3": 30, "k4": 40, "k5": 50}

# items()で要素のビューを取得する
itm_v = d.items()
print(f"itm_v: {itm_v}")

# 元の辞書にデータを追加する。
d["k6"] = 60

# データ追加前に作成したビューを確認してみる。
print(f"itm_v: {itm_v}")</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
itm_v: dict_items([('k1', 10), ('k2', 20), ('k3', 30), ('k4', 40), ('k5', 50)])
itm_v: dict_items([('k1', 10), ('k2', 20), ('k3', 30), ('k4', 40), ('k5', 50), ('k6', 60)])</pre>



<p class="wp-block-paragraph">上記例では、<code>items</code>でビューとして取得した後に元の辞書にデータを追加しています。</p>



<p class="wp-block-paragraph">その後、再度<code>items</code>で取得しなおすといった操作をしていませんが<code>itm_v</code>を<code>print</code>すると追加した要素が増えていることが分かります。このようにビューなのかコピーなのかというのは非常に重要ですのでしっかりと理解して使用しましょう。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Pythonで、辞書（<code>dict</code>）の内容を列挙して扱う方法について解説しました。</p>



<p class="wp-block-paragraph">辞書では、<span class="marker"><strong><code>key</code></strong></span>、<span class="marker"><strong><code>values</code></strong></span>、<span class="marker"><strong><code>items</code></strong></span>といったメソッドを使用することで辞書におけるキーや値の情報を取り出すことができることを紹介しました。また、これらのメソッドはイテラブル(iterable)なオブジェクトを返却するため、<code>for</code>文で使用することができます。</p>



<p class="wp-block-paragraph">なお、<code>key</code>、<code>values</code>、<code>items</code>の返却値はコピーではなくビューであるため、元データが変更されるとビューの結果も変化しますので十分に注意しましょう。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--heading-box8  "><div class="a--simple-box-title d--bold">ソースコード</div><div class="c--simple-box-inner">
<p class="wp-block-paragraph">上記で紹介しているソースコードについては <a href="https://github.com/nkhn37/python-tech-sample-source/tree/main/python-basic/dict/keys-values-items" target="_blank" rel="noreferrer noopener">GitHub</a> にて公開しています。参考にしていただければと思います。</p>
</div></div></section>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/python-dict-keys-values-items/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: tech.nkhn37.net @ 2026-06-14 23:03:29 by W3 Total Cache
-->