同じ配列(リスト)を繰り返して連結するには(乗算みたいな) (x
/ *
)
2016/05/26
Python | ["a", "bb", "ccc"] * 3 |
Ruby | ["a", "bb", "ccc"] * 3 |
Perl | ("a", "bb", "ccc") x 3 |
Python 2016/05/26
例
print(["a", "bb", "ccc"] * 3)
# => ['a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc']
print([1, 2, 3] * 3)
# => [1, 2, 3, 1, 2, 3, 1, 2, 3]
print((1, 2, 3) * 3)
# => (1, 2, 3, 1, 2, 3, 1, 2, 3)
*
演算子はシーケンス型に対して共通に使えるので、文字列に対しても同じように使える。
-> 文字列の繰り返し
二項算術演算 | Python 2.7 documentation
http://docs.python.jp/2/reference/expressions.html#binary-arithmetic-operation
二項算術演算 | Python 3 documentation
http://docs.python.jp/2/reference/expressions.html#binary-arithmetic-operations
Ruby / JRuby 2016/05/26
*
演算子を使う。
p ["a", "bb", "ccc"] * 3
# => ["a", "bb", "ccc", "a", "bb", "ccc", "a", "bb", "ccc"]
p [1, 2, 3] * 3
# => [1, 2, 3, 1, 2, 3, 1, 2, 3]
要素のオブジェクト自体がコピーされるわけではないので、可変オブジェクトを繰り返す際には注意が必要。要素のオブジェクトを変更すると繰り返したところにも伝搬する。
arr = ["a", "bb", "ccc"] * 3
arr[0][0] = 'A'
p arr
# => ["A", "bb", "ccc", "A", "bb", "ccc", "A", "bb", "ccc"]
*
演算子は文字列の繰り返に対しても使える。
-> 文字列の繰り返し
Perl 2016/05/26
x
(アルファベットのエックス)を乗算の演算子のようにして使う。
my @arr1 = (1, 2, 3);
my @arr2 = (@arr1) x 3;
print Dumper(\@arr2);
# 出力結果
# $VAR1 = [
# 1,
# 2,
# 3,
# 1,
# 2,
# 3,
# 1,
# 2,
# 3
# ];
x
演算子は文字列の繰り返しに対しても使える。
-> 文字列に繰り返し。
乗法演算子 | perldoc.jp
http://perldoc.jp/docs/perl/5.20.1/perlop.pod#Multiplicative32Operators