LoginSignup
2
1

More than 5 years have passed since last update.

辞書でもsetでも内包表記が使える

Last updated at Posted at 2018-02-28

辞書

内包表記を使った辞書の作成

d = {str(x):x for x in range(10)}

>>>{'0': 0,
 '1': 1,
 '2': 2,
 '3': 3,
 '4': 4,
 '5': 5,
 '6': 6,
 '7': 7,
 '8': 8,
 '9': 9}

内包表記を使った条件付き辞書の作成

#偶数だけ抜き出す条件式
d2 = {str(x):x for x in range(10) if x%2 == 0 }

>>>{'0': 0, '2': 2, '4': 4, '6': 6, '8': 8}

既存の辞書から条件付き辞書を作成

d = {str(x):x for x in range(10)}
d2 = {key:value for key,value in d.items() if value%2==0}
>>>{'0': 0, '2': 2, '4': 4, '6': 6, '8': 8}

set

乱数の集合を作成

import random
rand_set = {random.randrange(0,10) for i in range(10)}

>>>len(rand_set)
>>>7

重複しない10個の乱数が得られるまでループする

rand_set2 = {}
count = 0
while len(rand_set2) != 10:
    rand_set2 = {random.randrange(0,10) for i in range(10)}
    count += 1

print('count={}'.format(count))

>>>count=6185
>>>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

以上

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1