アカデミック

【超初心者向け】pythonでエンジニアのWebテストを受ける時の基本コードまとめ

入力を受け取るだけで精一杯…。
やりたいことはあるけどコードで書けない!

 

今回は,インターンなどを応募する際に受けるエンジニア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]]
【改行文字の取り扱い】
pythonはprint()を利用して出力しますが,その際にうまく処理をしていないと「\n」という改行文字が出力されてしまいます。そんなときは,以下のようにするとよいでしょう。
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]
他にもよく利用する基本的な技術は随時更新していきます。
ABOUT ME
zuka
京都大学で機械学習を学んでいます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

※ Please enter your comments in Japanese to prevent spam.