Python メモ

・無限大と負の無限大

# float型の無限大の値
x = float('inf')

# 負の無限大
x = -float('inf')

Counter() クラスの使い方

from collections import Counter
x = [3,4,4,5,6,3]
c = Counter(x)
print(c)
for a,b in c.items():
  print(' %d : %d' % (a,b))
 
# Counter({3: 2, 4: 2, 5: 1, 6: 1})
# 3 : 2
# 4 : 2
# 5 : 1
# 6 : 1

・条件式の書き方


# 条件分岐を用いた書き方
a,b,c = [10,5,20]
if b<10: a = b
else: a = c

# 条件式を用いた書き方
a,b,c = [10,5,20]
a = b if b<10 else c

「値1 if 条件式 else 値2」

条件式==trueなら、値1を返す。そうでないなら、値2を返す。

みたいな。

・辞書の使い方 基礎

# 辞書を宣言
dict = {}

# 辞書に要素を追加
dict['a'] = 1
dict['c'] = 3

# 要素を更新
dict['a'] *= 10

↑参考リンク dict 

・リストのソート(指定なし、逆順)

x = [2,8,4,10,6]
x.sort()
# x = [2,4,6,8,10]
# x.sort(reverse=True) って書くと降順になる

リスト

・リストからpopする

arr = [2,4,6,8]
tmp = arr.pop(2)
# tmp <- 6

print(arr)
# [2, 4, 8]

・辞書をソート

x = {10: 100, 5: 25, 2: 4}
print(x)

xx = sorted(x.items(), key=lambda a:a[0]);
print(xx)
# [(2, 4), (5, 25), (10, 100)]

# valueで並べ替えるなら、a:a[1]にする

参考リンク

・リストの出力の仕方

 (*をつけると空白区切りで出力し、最後の要素の後だけ空白ではなく改行を入れる)

a = [2,4,6]
print(a)
# [2, 4, 6]
print(*a)
# 2 4 6

・辞書をソート

a = {1:50, 10:500, 5:250}
a = sorted(a.items(), key=lambda x:x[0])
print(a)
# [(1, 50), (5, 250), (10, 500)]

リンク

・powしてから余り求める

a = 7; b = 9; c = 1000;
print(pow(a,b))
# 40353607

print(pow(a,b,c))
# 607

・set型

s = set()
s.add(1)
s.add(2)
s.add(1)
print(s)
# {1, 2}

・キュー

import queue


q = queue.Queue()
q.put(0) # 0
q.put(2) # 2,0
q.put(1) # 1,2,0

x = q.get() # 1,2 → 0
print(x)
# 0
x = q.get() # 1 → 2
print(x)
# 2

・座標圧縮(?)

座圧(ABC036 - C)

def zaatsu(a):
   s = sorted(list(set(a)))
   return {s[i]:i for i in range(len(s))}

# 丁寧に書くとこっち
def ZAATSU(a):
   s = sorted(list(set(a)))
   t = {}
   for i in range(len(s)):
       t[s[i]] = i
   return t
   
a = [0,50,30,13,11,29]
print(zaatsu(a))
# {0: 0, 11: 1, 13: 2, 29: 3, 30: 4, 50: 5}

この記事が気に入ったらサポートをしてみませんか?