Python 和 C++ 是笔者喜欢并在使用的两种编程语言。
Python 以其开发效率著称,而 C++ 运行效率无疑更高一筹。
我们用一个小例子做下对比。
【题目】
已知一个数组,请复制并输出此数组的一份拷贝。
我们分别用 C++ 和 Python 进行实现。
【C++ 版】
- #include <vector>
- #include <iostream>
- #include <iterator>
- using namespace std;
- int main()
- {
- vector<int> v1 = {1, 2, 3, 4, 5};
- vector<int> v2;
- v2.assign(v1.begin(), v1.end());
- copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " "));
- return 0;
- }
C++ 可以使用 STL 中的 vector 来表示一个数组。使用 vector 的 assign 函数就可以实现复制操作,很简单。
但是,如果要将 vector 输出,除了使用 for 循环外,我们需要借助 STL 中的 copy 算法,才可以实现简短优雅的输出,而这其中又牵涉到 ostream_iterator 这样的并不经常使用的特性。
【Python 版】
- alst = [1, 2, 3, 4, 5]
- blst = []
- blst.extend(alst)
- print(blst)
- #更 Pythonic
- clst = []
- clst[:] = alst
- print(clst)
Python 代码就简单明了很多了。我们使用 list 来表示数组,可使用 list 的 extend 方法来复制一个 list。还可以使用切片语法实现复制。
当然,不像 C++ 中的 vector 只能存储同一种类型的数据,Python list 可以混合存放任何类型的数据。的确方便高效!
【结语】
复制并输出一个数组,Python 和 C++ 都可以使用短短两行代码来实现。
但是二者对于代码编写者的技能熟练度要求还是不同的。从易用性来讲,Python 还是具有明显优势的。
曾经一句“PHP 是世界上最好的语言”就足以引起程序员之间的战争,这种争论其实是没有必要的。
每种语言各有所长,在不同的应用场景下,各自都有卓越的表现。