首页 > 代码库 > [Python] python vs cplusplus
[Python] python vs cplusplus
一些学习过程中的总结的两种语言的小对比,帮助理解OO programming.
Continue...
字典
序列 --> 字典
Python:
def get_counts(sequence): counts = {} for x in sequence: if x in counts: counts[x] += 1 else: counts[x] = 1 # 这是是硬伤,不优于c++,这里必须如此写 return counts
c++:貌似没有这个问题。
#include <iostream>#include <map>using namespace std;int main(){ cout << "Hello World!" << endl; map<string, int> m;// m["a"] = 1;// m["a"] += 1; cout << m.size() << endl; cout << m["a"] << endl; //自动添加了"a" cout << m.size() << endl; return 0;}
字典排序
C++ sort参考:
[c++] Associative Containers
python sort:
counts = get_counts(time_zones)# counts.sort() 错误的,默认按照第一个属性排序print(type(counts)) # debug
如果是自定义排序呢?
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),
如果我们需要字典按值排序的话,那可以用下面的方法来进行:
(1) 下面的是按照value的值从大到小的顺序来排序。
dic = {‘a‘:31, ‘bc‘:5, ‘c‘:3, ‘asd‘:4, ‘aa‘:74, ‘d‘:0}#dic.iteritems() 得到[(键,值)]的列表。#然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第2个元素d[1]的值#来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)print dict
(2) 对字典按键(key)排序:
dic = {‘a‘:31, ‘bc‘:5, ‘c‘:3, ‘asd‘:4, ‘aa‘:74, ‘d‘:0}dict= sorted(dic.iteritems(), key=lambda d:d[0]) # 按照第2个元素d[1]的值来排序print dict
[Python] python vs cplusplus
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。