itsource

PHP는 Python의 목록 이해 구문과 동등합니까?

mycopycode 2022. 9. 12. 11:50
반응형

PHP는 Python의 목록 이해 구문과 동등합니까?

Python은 구문적으로 sweet list completions를 가지고 있습니다.

S = [x**2 for x in range(10)]
print S;
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

PHP에서는 루프를 실행해야 합니다.

$output = array();
$Nums = range(0,9);

foreach ($Nums as $num) 
{
    $out[] = $num*=$num;
}
print_r($out);

입수 방법:

어레이 ( [0] = > 0 [ 1 ] = > 1 [ 2 ] = > 4 [ 3 ] = > 9 [ 4 ] = 16 [ 5 ] = > 25 [ 6 ] = 36 [ 7 ] = > 49 [ 8 ] = 64 [ 9 ] > 81)

PHP에서 유사한 목록 이해 구문을 얻을 수 있는 방법이 있습니까?PHP 5.3의 새로운 기능으로 할 수 있는 방법이 있습니까?

감사합니다!

이런 거?

$out=array_map(function($x) {return $x*$x;}, range(0, 9))

이것은 PHP 5.3+에서 동작합니다.이전 버전에서는 array_map에 대한 콜백을 별도로 정의해야 합니다.

function sq($x) {return $x*$x;}
$out=array_map('sq', range(0, 9));

PHP 5.5는 목록 통합을 지원할 수 있습니다. 메일링 목록 공지사항을 참조하십시오.

자세한 내용은 다음과 같습니다.

http://code.google.com/p/php-lc/ 또는 http://code.google.com/p/phparrayplus/ 를 참조해 주세요.

.NET에서는 Python의 "구문적으로 스위트리스트 통합"에 상당하는 것이 LINQ입니다.PHP에는 YaLinqo 라이브러리*를 포함한 여러 포트가 있습니다.구문론적으로는 일련의 기존 구성보다는 SQL에 가깝습니다.for그리고.if하지만 기능적으로는 비슷합니다.

$a = Enumerable::range(0, 10)->select('$v * $v');

이를 통해 콘솔에 출력할 수 있는 반복기가 생성됩니다.

var_dump($a->toArray()); // by transforming the iterator to an array
echo $a->toString(', '); // or by imploding into a string

또는 를 반복하여 사용합니다.foreach:

foreach ($a as $i)
    echo $i, PHP_EOL;

여기서,'$v * $v'에 대한 지름길입니다.function ($v) { return $v * $v; }이 라이브러리는 이를 지원합니다.안타깝게도 PHP는 닫힘에 대한 짧은 구문을 지원하지 않지만 이러한 "string lambdas"를 사용하여 코드를 더 짧게 만들 수 있습니다.

더 많은 방법이 있다.where(if등가)로 끝납니다.groupJoin그룹화와 결합 변환을 수행합니다.

* 내가 개발한

언급URL : https://stackoverflow.com/questions/1266911/does-php-have-an-equivalent-to-pythons-list-comprehension-syntax

반응형