🐘

PHPの配列と、Pythonのリストを比較する

2022/01/26に公開約1,800字

前提として、Pythonにも配列はある様です。
しかしPythonの配列はPHPのようにstringやintを同様に定義する事は出来ません。
なので同じように定義できるPythonのリストがPHPの配列と比較対象として妥当になります。

Pythonの配列(強い型付け)についてはこちら

定義記法

PHP
$cars = array('Ford', 'Volvo', 'BMW');
echo 'I like ' . $cars[0] . ', ' . $cars[1] . ', and ' . $cars[2] . '.';
Python
cars = ['Ford', 'Volvo', 'BMW']
print('I like ' + cars[0] + ', ' + cars[1] + ', and ' + cars[2] + '.')

長さの取得

PHP
$length = count($cars);
Python
$length = len(cars)

Indexの取得

PHP
$index = array_search('Volvo', $cars);
Python
index = cars.index('Volvo')

ループ展開

PHP
foreach ($cars as $index => $car) {
  echo '['. strval($index) . '] = ' . $car;
}
Python
# ループ内でindexを取得するには、enumerate()に配列を渡す
for index, car in enumerate(cars):
  print('[' + str(index) + '] = ' + car)

要素の追加

PHP
// Push
array_push($cars, 'Toyota');

// Unshift
array_unshift($cars, 'Toyota');
Python
# Push
cars.append('Toyota')

# Unshift
cars.insert(0, 'Toyota')

要素の削除

PHP
// Pop
array_pop($cars);

// Shift
array_shift($cars);

// Remove by index
array_splice($cars, 1, 1);

// Remove by values
$carsToRemove = array('Volvo', 'BMW');
$cars = array_values(array_filter($cars, function($val) use ($carsToRemove) {
    return (in_array($val, $carsToRemove) === false);
}));
Python
# Pop
cars.pop()

# Shift
cars.pop(0)

# Remove by index
cars.pop(1)

# Remove by values
cars = [c for c in cars if c not in ['Volvo', 'BMW']]

リバース

PHP
array_reverse($cars);
Python
# Python
cars.reverse()

ソート

PHP
// ASC
sort($cars);

// DESC
rsort($cars);
Python
# ASC
cars.sort()

# DESC
cars.sort(reverse=True)

Discussion

ログインするとコメントできます