PukiWiki


配列

_ 配列

_ Javascript

var beatles = Array( "John", "Paul", "George", "Ringo" );
var names = [ "Ringo", "John", "George", "Paul" ];

_ Perl

#!/usr/bin/perl

# 初期化
@a = (1,2,3);

print $a[0]."\n";

print "Length : " . ($#a + 1) . "\n"; 

$a[3] = 4;

print "Length : " . ($#a+1) . "\n";

foreach $t (@a) {
        print $t;
}
print "\n";

_ Python

_ タプル

変更不可な配列 ( と )でくくる。

>>> t=1,2
>>> t
(1, 2)
>>> x,y = t
>>> x
1
>>> y
2

じつは()でくくらなくてもいい。

_ リスト

変更可能な配列 [ と ]でくくる。

[1,2,3]
>>> a = ['spam', 'eggs', 100, 1234]
>>> a
['spam', 'eggs', 100, 1234]

>>> a[0]
'spam'
>>> a[3]
1234
>>> a[-2]
100
>>> a[1:-1]
['eggs', 100]
>>> a[:2] + ['bacon', 2*2]
['spam', 'eggs', 'bacon', 4]
>>> 3*a[:3] + ['Boo!']
['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']

リストは変更できる。

>>> a
['spam', 'eggs', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'eggs', 123, 1234]

スライスを利用して変更

>>> # いくつかの項目を置換する:
... a[0:2] = [1, 12]
>>> a
[1, 12, 123, 1234]
>>> # いくつかの項目を除去する:
... a[0:2] = []
>>> a
[123, 1234]
>>> # いくつかの項目を挿入する:
... a[1:1] = ['bletch', 'xyzzy']
>>> a
[123, 'bletch', 'xyzzy', 1234]
>>> # それ自身 (のコピー) を先頭に挿入する
>>> a[:0] = a
>>> a
[123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]
>>> # リストをクリアする: 全てのアイテムを空のリストに置換する
>>> a[:] = []
>>> a
[]

長さはlen()で取得

>>> a = ['a', 'b', 'c', 'd']
>>> len(a)
4

_ リスト用のメソッド例

>>> a = [66.25, 333, 333, 1, 1234.5]
>>> print a.count(333), a.count(66.25), a.count('x')
2 1 0
>>> a.insert(2, -1)
>>> a.append(333)
>>> a
[66.25, 333, -1, 333, 1, 1234.5, 333]
>>> a.index(333)
1
>>> a.remove(333)
>>> a
[66.25, -1, 333, 1, 1234.5, 333]
>>> a.reverse()
>>> a
[333, 1234.5, 1, 333, -1, 66.25]
>>> a.sort()
>>> a
[-1, 1, 66.25, 333, 333, 1234.5]

_ リストで使うと便利な組み込み関数

_ *filter

>>> def f(x): return x % 2 != 0 and x % 3 != 0
...
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]

range(2,25)の中からfが真になるリストを返す。

_ *map

>>> def cube(x): return x*x*x
...
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

_ リストの内包表記

[式 for節 if節]

>>> freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']
>>> [weapon.strip() for weapon in freshfruit]
['banana', 'loganberry', 'passion fruit']
>>> vec = [2, 4, 6]
>>> [3*x for x in vec]
[6, 12, 18]
>>> [3*x for x in vec if x > 3]
[12, 18]
>>> [3*x for x in vec if x < 2]
[]
>>> [[x,x**2] for x in vec]
[[2, 4], [4, 16], [6, 36]]

_ Ruby

[と]でくくる。

a = [1, 2, 3]
b = ["aaa", "bbb", "ccc"]
a = [1,2,3,"aaa","bbb"]

# 長さ取得
puts a.length #=> 5

# 要素にアクセス
puts a[1] #=> 2

# マイナスで後ろから指定
puts a[-2] #=>"aaa"

# ..で範囲を指定
puts a[2..4] #=> [3, "aaa", "bbb"]

# ,で先頭と長さを指定
puts a[3,2] #=> ["aaa", "bbb"]

# join(区切り文字)で文字列をして出力
puts a.join(" ") #=> "1 2 3 aaa bbb"

# pushで最後に追加
a.push("ccc")

# popで最後を削除
a.pop

# unshiftで先頭に追加
a.unshift(123)

# shiftで先頭を削除
a.shift

# putsで出力すると1行づつ出力
puts a

# pで出力するとそれなりに出力
p a
 
Link: MenuBar(2472d) 文字列の分割(2472d) 文字列の特性(2472d)
Last-modified: 2017-07-19 (水) 22:33:29 (2472d)