はじめに
pythonの学習を進める上で役に立ちそうなネタを見つけたらメモ代わりに残しておいて、
今後どんどん使っていくのを目的とする
###001.文字列型のリストを簡単に作る
- rangeそのままだとint型になってしまうためmap関数でstrに置換してやるところがミソ
list(map(str, range(10)))
実行結果
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
###002.ランダムな数字のリストを作る
- 0~100までの数字でランダムに20個のリストを作る
import random
random.sample(range(101), 20)
###003.ランダムな文字列を作る
- 大文字小文字を含む15文字のランダムな文字列を生成する
string.printableで記号も含めた文字列を出力可能
※参考サイト
import random
import string
''.join(random.choice(string.printable) for _ in range(15))
###004.ファイルを一度に読み込む
-ファイルを一度に読み込みたいときに使えるテクニック
input.txtを読み込んでそのままoutput.txtに書き出したいといった時に使えるテクニック
with open('input.txt') as f, open('output.txt', mode='w') as fw:
for line in f.readlines():
fw.write(line)
もちろん単純にファイルをコピーしたいだけならshutilを使ってコピーでも構わないし
従来通りwith openを2回書いても良いが1行で簡単に書けるというのがポイントである
###005.P●IZAスキルチェックでお馴染みのやつ
最初にループをさせる回数を入力させてその後引数を渡して処理させる系
入力した値をsplitで分割してリストに渡してやれば良い
num = int(input('Enter number: '))
print('*' * 20 + ' What is your hobby? ' + '*' * 20)
to_string = [list(input().split()) for _ in range(num)]
print(to_string)
num = int(input('Enter number: '))
print('*' * 20 + ' What is your favorite number? ' + '*' * 20)
numbers = [list(map(int, input().split())) for _ in range(num)]
print(numbers)
実行結果
Enter number: 3
******************** What is your hobby? ********************
読書 映画 水泳
プロレス テニス
野球 サッカー
[['読書', '映画', '水泳'], ['プロレス', 'テニス'], ['野球', 'サッカー']]
Enter number: 4
******************** What is your favorite number? ********************
777 1234
222
123 456 789
999 666 777
[[777, 1234], [222], [123, 456, 789], [999, 666, 777]]
###006.モジュールのsourceを確認する
inspectモジュールのgetfileでソースコードのPATHが取得できる
import inspect
import glob
inspect.getfile(glob)
実行結果
'/Users/xxx-pc/.pyenv/versions/anaconda3-2021.05/lib/python3.8/glob.py'