入力を受け取るだけで精一杯…。
やりたいことはあるけどコードで書けない!
今回は,インターンなどを応募する際に受けるエンジニアWebテストでよく用いられる基本コードをまとめていきたいと思います。また,本記事はpython実践講座シリーズの内容になります。その他の記事は,こちらの「Python入門講座/実践講座まとめ」をご覧ください。
スポンサーリンク
読みたい場所へジャンプ!
基本技術
PythonでWebテストを受ける際に必要になる超基本的な技術をまとめていきたいと思います。大きく分けて,「入力を受け取る」「リストの操作」「便利な関数」の3つです。
★Webテストでよく用いられる技術★
リストの操作
便利な関数
入力を受け取る
1行を文字列として受け取る
a = input()
# Input: apple
# a = input()
# a = "apple"
1行を1文字ずつリストに受け取る
a = list(input())
# Input: apple
# a = list(input())
# a = ["a,"p","p,"l","e"]
1文字を数字として受け取る
a = int(input())
# Input: 3
# a = int(input())
# a = 3
一行を数字としてリストで受け取る
a = list(map(int,input().split()))
# Input: 1 2 3 4 5
# a = list(map(int,input().split()))
# a = [1,2,3,4,5]
複数行を数値として受け取る
list = []
list.append(list(map(int,input().split())))
# Input:
1 2 3 4 5
2 4 6 8
3 6 9
# list = []
# list.append(list(map(int,input().split())))
# list = [[1,2,3,4,5],[2,4,6,8],[3,6,9]]
print(output,end="")
リストの操作
一部を取る
a = x[-1:]
b = x[::-1]
c = [1:9:2]
# Input:x=[0,1,2,3,4,5,6,7,8,9]
# a = x[-1:]
# b = x[::-1]
# c = x[1:9:2]
# a = [9]
# b = [9,8,7,6,5,4,3,2,1,0]
# c = [1,3,5,7,9]
二次元配列の転置
transpose = [x for x in zip(*data)]
# Input:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# transpose = [x for x in zip(*Input)]
# transpose = [[1,4,7],[2,5,8],[3,6,9]]
二次元配列の転置
a = [x for x in zip(*data)]
# Input:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# transpose = [x for x in zip(*Input)]
# transpose = [[1,4,7],[2,5,8],[3,6,9]]
一次元配列化
a = [flatten for inner in data for flatten in inner]
# Input:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# a = [flatten for inner in Input for flatten in inner]
# a = [1,2,3,4,5,6,7,8,9]
要素の削除
a = del Input[2] #インデックス指定
b = Input.remove(2) #要素指定
# Input:[1,2,3,4,5]
# a = del Input[2]
# b = Input.remove(2)
# a = [1,2,4,5]
# b = [1,3,4,5]
特定の要素が含まれているか確認
a = 3 in Input
# Input: [1,2,3,4,5]
# a = 3 in Input
# a = True
ソート
a = sorted(Input)
b = sorted(Input, reverse=True)
c = sorted(data, key=lambda x: (x[2], x[1], x[0]))
# Input: [0,4,7,3,5]
# data: [[0,4,8],[1,4,7],[2,4,6]]
# a = sorted(Input)
# b = sorted(Input, reverse=True)
# c = sorted(data, key=lambda x: (x[2], x[1], x[0]))
# a = [0,3,4,5,7]
# b = [7,5,4,3,0]
# c = [[2,4,6],[0,4,8],[1,4,7]]
最大・最小
a = min(Input)
b = max(Input)
c = Input.index(a)
d = Input.index(b)
# Input: [1,2,3,4,5]
# a = min(Input)
# b = max(Input)
# c = Input.index(a)
# d = Input.index(b)
# a = 1
# b = 5
# c = 0
# d = 4
ディープコピー
pythonでは「=」を使ってある変数をコピーすると中身が保持されてしまうため,コピー先をいじると元の変数も変わってしまいます。これを防ぐために,ディープコピーを利用します。
import copy
a = copy.deepcopy(Input)
# Input: [1,2,3,4,5]
# a = deepcopy(Input)
# test = Input
# a = [1,2,3,4,5]
# test = [1,2,3,4,5]
# test[0] = 0
# test = [0,2,3,4,5]
# output = [0,2,3,4,5]
便利な関数
インデックス付与
a = enumerate(Input, start=0)
# Input:["A","B","C","D","E"]
# a = enumerate(Input, start=0)
# a = [(0,"A"),(1,"B"),(2,"C"),(3,"D"),(4,"E")]
累積和
from itertools import accumulate
a = list(accumulate(Input))
# Input: [1,3,5,7,8]
# a = list(accumulate(Input))
# a = [1,4,9,16,24]
条件切り出し
from itertools import dropwhile, takewhile
a = dropwhile(lambda x: x != 1, Input) # 除外
b = takewhile(lambda x: x != 1, Input) # 切り出し
# Input: [0,5,6,3,1,4,3,9]
# a = dropwhile(lambda x: x != 1, Input)
# b = takewhile(lambda x: x != 1, Input)
# a = [1,4,3,9]
# b = [0,5,6,3]