Python VS C
if else | for | while | 且或非 | in | 布尔值 | 字符串 | |
---|---|---|---|---|---|---|---|
C | if (A) { ...; } else if (B) { ...; } else { ...; } | for (i=0; i<5; i++) { ...; } | while (A) { ...; } ;do { ...; } while(B) | && , || ,! | 无 | true , false | 字符:'a' ,字符串: "abc" 。 C的字符串是用字符数组进行存储的,无法直接用 + 进行拼接,需要用strcat(str1, str2); |
C++ | 同上 | 同上 | 同上 | 同上 | 无 | 同上 | 同上,但是可以用 + 连接字符串。 |
Python | if (age_0 >= 21) and (age_1 >= 21): # 增强可读性,and两边的条件也可以不加括号if A: ... elif B: ... elif C: ... else: ... (总之,如果你只想执行一个代码块,就使用if-elif-else 结构;如果要运行多个代码块,就使用一系列独立的if 语句。)if []: ... else: ... 会判断为假走else逻辑。 | for i in []: | while A: ;没有 do while | and , or , not | if a in list1: ... | True , False | '' 或 "" ,不区分字符和字符串。可以用 + 进行字符串拼接。 |
列表 | 元组 | 字典 常用方法汇总
列表 | 元组 | 字典 | |
---|---|---|---|
定义 | 1. 空列表:list1 = [] / list() 2. 转化为列表: list2 = list(range(2,11,2) | 1. 空元组:tuple1 = () / tuple() 2. 带值元组: tuple1 = (1,2) / tuple(一个序列) 注意, a=(1) 不等于a=(1,) 前者是普通的括号表达式相当于1,后者的逗号表明这是一个只含一个元素1 的元组。 | 1. 空字典:dict1 = {} / dict() 2. 带键值字典: dict1= {'color': 'green', 'points': 5} 3. dict1 = dict.fromkeys(keys, default_value) :以keys列表的key为键,default_value的值为所有键的值创建字典。(这个就是调用dict这个"库",而不是创建的某个dict1变量。dict.formkeys() ) |
增 | 1. 按值添加:list1.append(value) 2. 按位添加: list1.insert(index, value) 3. 拓展列表: list1.extend(可迭代对象) :可以接受任何可迭代对象作为参数,包括其他列表、元组、字符串等,如:list1.extend([1,2,3,4]) 。 | 不可修改 | 1. dict1['key1'] = value1 注意,键值对的排列顺序与添加顺序不同。Python不关心键值对的添加顺序,而只关心键和值之间的关联关系。 Python 3.6 之前的版本字典是无序的,之后是有序的,即存入和拿出的序列是一个顺序。 2. dict1.setdefault(key[, default_value]) 获取指定键的值,如果键不存在则设置默认值并添加到字典中并返回默认值。如果不设置默认值,默认值为 None 。 |
删 | 1. 按位删除: del list1[1] , popped_value = list1.pop()/list1.pop(index) 2. 按值删除: list1.remove(value) (方法remove() 只删除查到的第一个值,其他的相同值需要循环处理)3. 清空列表: list1.clear() | 不可修改 | 1. del dict1['key1'] 2. dict1.pop('key1'[, default]) 弹出并删除key对应的值,没有的话返回设置的 default 值。如果不设置default值,pop不存在的key会报错。3. dict1.popitem() 弹出最后一个键值对(python3.6之后字典是有序的),空字典的话会报错。 4. dict1.clear() :清空字典。 |
查 | list1[1] , list1[-1] , list1[1:3] , list1[:-1] , list1[2:] , list1[-3:] , list1[1:5:-2] list1[::-1] | 同列表,可切片,可逆序索引 | 1. dict1['key1'] :如果键不存在会报错2. dict1.get('key1'[, default]) 获取指定键的值,如果键不存在则返回默认值,默认值不指定的话为 None 。3. 获取字典所有键值对: dict1.items() 。(可以用for来分开获取: for key, value in dict1.items(): for循环可以多变量遍历。)4. 字典的所有键: dict1.keys() 5. 字典的所有值: dict1.values() |
改 | list1[index1]=value1 | 不可修改 | 1. dict1['key1'] = new_value 2. dict1.update({'key1': new_value1, ...}) 将指定字典中的键值对更新到当前字典中,如果键已存在则更新值,如果键不存在则新增键值对。 |
其他操作 | 1. 列表排序:list1.sort(reverse=[False]/True) sorted(list1, reverse=) 2. 反转列表: list1.reverse() 3. 列表长度: len(list1) 4. 遍历列表: for val in list1: ... 5. 列表解析: [value**2 for value in range(11)] 6. 列表复制: list2 = list1 (list等同于list1,两者指向同一个列表),list2 = list1[:] 或者 list2 = list1.copy() (list是一个新列表)7. 列表元素统计: list1.count(value1) :统计value在列表list中出现的次数。8. 列表元素索引: list1.index(value1) :返回value在list中首次出现的索引位置。 | 1. 元组长度:len(tuple1) | 1. 字典长度:len(dict1) |
嵌套数据结构:
字典列表:
aliens = [{'speed': 'medium', 'color': 'yellow', 'points': 10}, {'speed': 'medium', 'color': 'yellow', 'points': 10}, {'speed': 'medium', 'color': 'yellow', 'points': 10}, {'speed': 'slow', 'color': 'green', 'points': 5}, {'speed': 'slow', 'color': 'green', 'points': 5}]
值为列表的字典:
pizza = {'crust': 'thick', 'toppings': ['mushrooms', 'extra cheese'], }
值为字典的字典:
users = { 'aeinstein': { 'first': 'albert', 'last': 'einstein', 'location': 'princeton', }, 'mcurie': { 'first': 'marie', 'last': 'curie', 'location': 'paris', }, }
值为列表的列表
list_1 = [ [1,2,3,4,5], [6,7,8,9,10], ]
总之,随便套。