- HOME
- [3]
- [4]
- [5]
- [6]
- [7]
- [8]
- [9]
- [10]
- [11]
- [12]
- [13]
https://www.pg-fl.jp/program/dos/doscmd/
[0回]
PR
辞書の内包表記
辞書の内包表記は、基本的にリストの内包表記とほぼ同じですが、
返す値は「キー:値」のペアになります。
次のコードでは、リストから文字列だけを取り出して辞書のキーとして設定し
さらにキーのペアになる値を1~100の間でランダムに生成しています。
例
from random import randint
keys = ["いちご",
9,
"みかん",
25,
"りんご"
]
d = {x:randint(1, 100) for x in keys if type(x) == str}
print(d)
(1)リストkeysから取り出した値を変数xに格納する
(2)変数xに対して条件式type(x) == strを評価し、文字列であるか確認する
(3)条件に当てはまった値を辞書dのキーとして格納する。
(4)キーに対応する値をrandint()によって自動生成し、辞書dの値として格納する
辞書の内包表記を構文としてまとめると次のようになります。
{キー:値 for 変数 in イテラブルなオブジェクト (if 条件式)}
実行結果
{'いちご': 9, 'みかん': 51, 'りんご': 52}
プロセスは終了コード 0 で完了しました
ーーーーーーーーーーーーーーーーー
集合の内包表記
集合の内包表記もリストと同様です。記述の違いはカッコが[]から{}になることです。
[0回]
#############################################################################
# 内包表記(1)
# Pythonではforからin構文を使って、すでにあるリストなどから簡単に値を取り出せます。
# 例えば、a =[1,2,3,4,5]というリストの各要素の値を2倍にしたリストを作りには以下のようなコードが考えられます。
#
# リストの内包表記を構文としてまとめると次のようになります。
# 式 for 変数 in イテラブルなオブジェクト (if 条件式)
#
# イテラブルなオブジェクトとは
# イテラブルとは「要素を順番に取り出せること」で、リストや文字列、タプル、辞書などがそのような性質を持ちます。
# 内包表記は、イテラブルなオブジェクトから新しいデータ構造を作るための記法です。
#############################################################################
# リストの内包表記を使う場合
a =[1,2,3,4,5]
a_db = [x*2 for x in a]
print(a_db)
# 区切り
print("-"*17)
# リストの内包表記を使わない場合
a_db2 = []
for x in a:
a_db2.append(x*2)
print(a_db2)
出力結果
[2, 4, 6, 8, 10]
-----------------
[2, 4, 6, 8, 10]
プロセスは終了コード 0 で完了しました
条件式を含むリストの内包表記
a = [1,5,17,25,32]
a_chk = [x*2 for x in a if x >= 10]
print(a_chk)
出力結果
[34, 50, 64]
プロセスは終了コード 0 で完了しました
[0回]
対称差(排他的論理和)集合
集合aと集合bのどちらか一方にある要素を集めたのが対称差集合です。;
^演算子または、
シンメトリック_ディファレンス()メソッドを用います。
symmetric_difference()
ベン図でいうと
重なっていない部分が対象です。
[0回]
集合(セット)
集合を使うことで、要素をグループ分けして扱うことができます。
集合(セット)とは
集合とは、要素をグループ分けして扱う方のことです。
リストと似ていますが、要素に順序がありません。
また、リストは同じ値の要素を複数持つことができますが、
集合は同じ要素を重複して持つことができません。
a = {"いちご", "みかん", "りんご", "れもん", "もも"}
この集合にすでにある、”いちご"などを加えたりすることはできません。
=====================
set()を使うことで、他の型から集合を作ることができます。
setA = set("ABCDEFG")
図
==============
リストから集合に変換することもできます。リスト内で同じ値が複数あった場合は、重複分を取り除いて変換します。
重複排除にも使えそうですね。
listHoge = [1,5,11,9,7,1]
setB = set(listHoge)
setBは1が一つになる
[0回]