アストラルプリズム

PC、スマホ、ゲームなどの備忘録と日記

python メモ

忘れそうなアレコレ

 

配列で偶数個目の時だけ実行

num=[0,1,2,3,4,5]

a=[]

for v in num[0::2]:

    a.append(v)

aの中身は[0,2,4]になる

 

配列を交互に実行

 

二つの配列をまとめてループさせる

ただし少ない方の配列が無くなれば終わり

verts=[1,5,8]

time=[5,7,3]

for v , t in zip(verts,time)

    print(v)

    print(t)

ループ中にカウントもさせたい

verts=[1,5,8]

for i, v in enumerate(verts):
   print(i, name)
0 1

1 5

2 8

 

5からカウントを始めたい場合

for i, v in enumerate(verts,5):

 

長さが決まってる配列に交互に数値を入れる

こんな感じの

配列の長さ

l=7

([5,8]*ceil(7/2))[:7]

結果

[5, 8, 5, 8, 5, 8, 5]

 

小数点以下の計算の値がおかしい

IEEE754 浮動小数点数てのを使ってるので小数点以下の計算をすると変な値になる

 

>>> 3.1415+0.1
3.2415000000000003

どっから出てきた0.0000000000000003よ?

 

対策

>>> from decimal import Decimal

>>> Decimal("3.1415")+Decimal("0.1")
Decimal('3.2415')

なぜか数値は文字列で入力しないといけないみたい

 

if 文の範囲を決めるには

if 10 <= x < 20 :

 

配列をずらす

a=[1,2,3]をa=[3:1,2]にしたい時

a = a[-1:]+a[:-1]