🐍

JavaScriptとPythonにおける文字列(配列・リスト)の切り出し

2022/10/28に公開

はじめに

この記事は、JavaScriptに触ってきた(といっても1年くらい)者がPythonも使うようになったので、JavaScriptとPythonの相互変換を目指し、その備忘録として書いています。
今回は、文字列(配列・リスト)の切り出しについてです。

文字列の切り出し

JavaScript

const str = 'abcdef';
// start: 切り出し開始位置, end: 切り出し終了位置(自分自身は含まない)
// slice(start, end)
// endのみ省略可

// 3文字目以降
console.log(str.slice(2));   // output: 'cdef'
// 2文字目から5文字目まで
console.log(str.slice(1, 5));   // output: 'bcde'
// 末尾2文字
console.log(str.slice(-2));   // output: 'ef'
// 末尾2文字を除く
console.log(str.slice(0, -2));   // output: 'abcd'
// 4文字目のみ
console.log(str[3]);   // output: 'd'

Python

str = 'abcdef'
# start: 切り出し開始位置, end: 切り出し終了位置(自分自身は含まない)
# str[start:end]
# startもしくはendのどちらか一方のみ省略可

# 3文字目以降
print(str[2:])   # output: 'cdef'
# 2文字目から5文字目まで
print(str[1:5])   # output: 'bcde'
# 末尾2文字
print(str[-2:])   # output: 'ef'
# 末尾2文字を除く
print(str[:-2])   # output: 'abcd'
# 4文字目のみ
print(str[3])   # output: 'd'

配列・リストの切り出し

JavaScript

const arr = [10, 20, 30, 40, 50, 60];
// 文字列の場合とほぼ同じ

// 3要素目以降
console.log(arr.slice(2));   // output: [30, 40, 50, 60]
// 2要素目から5要素目まで
console.log(str.slice(1, 5));   // output: [20, 30, 40, 50]
// 末尾2要素
console.log(str.slice(-2));   // output: [50, 60]
// 末尾2要素を除く
console.log(str.slice(0, -2));   // output: [10, 20, 30, 40]
// 4要素目のみ
console.log(str[3]);   // output: 40

Python

list = [10, 20, 30, 40, 50, 60]
# こちらも文字列の場合とほぼ同じ

# 3要素目以降
print(list[2:])   # output: [30, 40, 50, 60]
# 2要素目から5要素目まで
print(list[1:5])   # output: [20, 30, 40, 50]
# 末尾2要素
print(list[-2:])   # output: [50, 60]
# 末尾2要素を除く
print(list[:-2])   # output: [10, 20, 30, 40]
# 4要素目のみ
print(list[3])   # output: 40

おわりに

JavaScriptだとsubstring()メソッド(こっちが本家?)もあるけど、startとendが変わってOKなだけだからあまり使うメリットがない気がする...
それにしてもPythonは記法が直感的でわかりやすい。

参考

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substring
pythonの公式ドキュメントはググってください...すみません...

Discussion