【python】文字列を分割する

〇まとめ

N = ‘6 4 9 12 3 7’
print(N)

NL = N.split()

print(NL)
print(NL[0])
print(type(NL[0]))

L = ‘6,  4,  9,  12,  3,  7’
print(L)
LL = L.split(‘,’)
print(LL)
for i in range(6):
    LL[i] = int(LL[i])
print(LL)

6 4 9 12 3 7
[‘6’, ‘4’, ‘9’, ’12’, ‘3’, ‘7’]
6
<class ‘str’>
6, 4, 9, 12, 3, 7
[‘6’, ‘ 4’, ‘ 9’, ‘ 12’, ‘ 3’, ‘ 7’]
[6, 4, 9, 12, 3, 7]

〇詳細

Nを「6 4 9 12 3 7」という文字列とします。

N = ‘6 4 9 12 3 7’
print(N)
# 6 4 9 12 3 7

spilt を使って、文字列を分割出来ます。
引数を省略した場合、デフォルトでは空白で分割される

NL = N.split()
print(NL)
# [‘6’, ‘4’, ‘9’, ’12’, ‘3’, ‘7’]

分割した文字列は、リスト型になる。
リストの先頭は「6」となるが、数値ではなく文字のまま。
数値への変換は後述。

print(NL[0])
# 6

print(type(NL[0]))
# <class ‘str’>

今度は、「,」で区切られた数値を文字列とします。

L = ‘6, 4, 9, 12, 3, 7’
print(L)

# 6, 4, 9, 12, 3, 7

文字列にあわせて、今回は「,」で文字列を分割します。
分割後は前回同様文字です。

LL = L.split(‘,’)
print(LL)
# [‘6’, ‘ 4’, ‘ 9’, ‘ 12’, ‘ 3’, ‘ 7’]

以下のようにして、各文字列を数値に変換できます。(各文字が整数の場合)

for i in range(6):
    LL[i] = int(LL[i])
print(LL)
# [6, 4, 9, 12, 3, 7]

【python】現在の時刻を文字列として抽出

〇まとめ

import datetime

now = datetime.datetime.now()


print(now)
print(‘{0:%Y%m%d}’.format(now))
print(‘{0:%H%M%S}’.format(now))
print(‘out_{0:%Y%m%d}_{0:%H%M%S}.xlsx’.format(now))

2021-10-10 14:22:16.719524
20211010
142216
out_20211010_142216.xlsx

〇詳細

日付や時刻を扱うにはdatetimeモジュールを使用します。

import datetime

現在の日付と時刻を取得します。

now = datetime.datetime.now()

「now」に日時が入っていることが確認できます。

print(now)
# 2021-08-10 23:14:10.582566

フォーマットを変更して日付を取得したり、

print(‘{0:%Y%m%d}’.format(now))
# 20210810

時間を取得したりできます。

print(‘{0:%H%M%S}’.format(now))
# 231410

他の文字列と組み合わせることもできます。

print(‘out_{0:%Y%m%d}_{0:%H%M%S}.xlsx’.format(now))
# out_20210810_231410.xlsx

【python】文字列から一文字取り出す

〇まとめ

name = ‘abcdefghi’

print(name)
print(name[0])
print(name[3])
print(name[-1])
print(name[-5])

abcdefghi
a
d
i
e

〇詳細

<出力>

nameを「abcdefghi」という文字列にして

name = ‘abcdefghi’

nameを出力すると、当然「abcdefghi」となります。

print(name)
# abcdefghi

nameの後ろに[(正の数)]をつけると、特定の文字を取り出すことができます。
ちなみに、先頭の文字を抽出するためには、「0」を入力します。

print(name[0])
# a

4番目の文字を取り出すためには、「3」を入力します。

print(name[3])
# d

マイナスの値を入力すると、文字列の末尾からカウントされるようになります。
ちなみに、末尾の文字を抽出するためには、「-1」を入力します。

print(name[-1])
# i

「-5」を入力すると、後ろから5番目の「e」が取り出せます。

print(name[-5])
# e

【python】文字列の一部を取り出す

〇まとめ

name = ‘abcdefghi’

print(name)
print(name[:2])
print(name[2:])
print(name[:-2])
print(name[-2:])

print(name[2:5])
print(name[2:-2])

abcdefghi
ab
cdefghi
abcdefg
hi

cde
cdefg

〇詳細

<出力>

nameを「abcdefghi」という文字列にして

name = ‘abcdefghi’

nameを出力すると、当然「abcdefghi」となります。

print(name)
# abcdefghi

nameの後ろに[:(正の数)]をつけると、前から指定した文字数を抽出します。

print(name[:2])
# ab

nameの後ろに[(正の数):]をつけると、前から指定した文字数を削除します。

print(name[2:])
# cdefghi

nameの後ろに[:(負の数)]をつけると、後ろから指定した文字数を削除します。

print(name[:-2])
# abcdefg

nameの後ろに[(負の数):]をつけると、後ろから指定した文字数を抽出します。

print(name[-2:])
# hi

nameの後ろに[(正の数):(正の数)]をつけると、以下のように前後の指定した文字数を抽出できます。

print(name[2:5])
# cde

nameの後ろに[(正の数):(負の数)]をつけると、以下のように前後の指定した文字数を抽出できます。

print(name[2:-2])
# cdefg