List comprehension

Set comprehension

Python语言用于生成集合的语法示例：
>>> s = {v for v in 'ABCDABCD' if v not in 'CB'}>>> print(s){'A', 'D'}>>> type(s)<class 'set'>>>>

Dictionary comprehension

Python语言用于生成字典（关联数组）的语法示例： 
>>> s = {key: val for key, val in enumerate('ABCD') if val not in 'CB'}>>> s{0: 'A', 3: 'D'}>>>

平行的list comprehension

Python语言的语法示例： 
# 正常的list comprehension>>> a = [(x, y) for x in range(1, 6) for y in range(3, 6)][(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), ...# 平行的/zipped list comprehension>>> b = [x for x in zip(range(1, 6), range(3, 6))][(1, 3), (2, 4), (3, 5)]

C++

C ++没有直接支持列表推导的任何语言特性，但运算符重载（例如，重载|，>>，>> =）已成功用于为“嵌入式”查询领域特定语言提供表达式语法。 或者，可以使用erase-remove idiom来构造列表推导以选择容器中的元素，并使用STL算法for_each来转换它们。
#include <algorithm>#include <list>#include <numeric>using namespace std;template<class C, class P, class T>C comprehend(C&& source, const P& predicate, const T& transformation){
  // 初始化目标
  C d = forward<C>(source);

  // 元素过滤
  d.erase(remove_if(begin(d), end(d), predicate), end(d));

  // 应用变换
  for_each(begin(d), end(d), transformation);

  return d;}int main(){
  list<int> range(10);  
      // range 是一个有10个元素的list, 全是0
  iota(begin(range), end(range), 1);
      // range 现在包含1,2,...,10

  list<int> result = comprehend(
      range,
      [](int x){return x*x <= 3;},
      [](int &x){x *= 2;});
      // 结果现在包含4,6,...,20}