python与c和c++数据类型之间的比较
这是我第一次自己写博客,在学长的强烈推荐之下,我开始写自己的博客,由于我还是刚刚开始学习python,所以有什么错误欢迎大家指出,希望自己和大家一起进步。
c语言的数据类型
1.基本类型
(1)数值类型
a.整型
1).短整型short
2).整型int
3).长整型long
b.浮点型
1).单精度型float
2).双精度型double
(2)字符串类型char
2.构造类型
(1)数组
(2)结构体struct
(3)共用体union
(4)枚举类型enum
3.指针类型
4.空类型void
c++的数据类型
这里与c相比新增了布尔型(bool)和类(class)
python的数据类型
整数
浮点数
字符串
布尔值
空值
此外,python还提供了列表(list)、元组(tuple)、字典(dict)/集合(set),这四种数据类型属于集合类型。
list、tuple、dict、set属于python中新增的数据类型。下面单独介绍这些数据类型。
list(列表):
list是一种有序的集合,可以随时添加和删除其中的元素
1 | >>>names=['Mike','Bob','Lisa'] |
这就是一个列表
可以用len()可以获得list元素的个数
用索引可以访问list中每一个元素的位置,如果你想访问列表中第一个元素,则可以用
1 | >>>names[0] |
以此类推,当超过了索引范围就会报错。
想要把元素插入到指定位置用names.insert(n,’Nini’),n为指定位置的编号。
要删除list末尾的元素,用pop()方法。
要删除list指定位置的元素,用pop(n)的方法,n为指定位置的编号。
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置。
list中可以包含其他的list,就像一个二维数组一样,以此类推,就不细说了。
tuple(元组)
tuple与list类似,只是tuple一旦初始化就不能修改,tuple的写法只是把list的[ ]改成了( )。
用以上的例子做说明
1 | >>>names=('Mike','Bob','Lisa') |
这就是一个元组,但是不能用上面list的方法来修改里面的元素。
只有一个元素的tuple需要加一个逗号,列如:L(1,) ,不加逗号会造成误解。
dict(字典)
使用键-值(key-value)存储,具有极快的查找速度。再次用上面的例子加上身高举例:
1 | >>>names={'Mike':175,'Bob':171,'Lisa':158} |
这就是一个dict,姓名与身高一一对应,dict用{ }表示。
想要在dict中增加数据,可以通过key放入,例如:names[‘Nini’]=162 ,这个数据就会放入names这个dict。由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉。
list和dict都可以查找数据,但有不同的特点:
list:查找和插入的时间会随着元素的增加而增加,但是占用空间小,浪费内存少。
dict:查找和插入速度很快,不受影响,但要占用大量内存,浪费多。
set(集合)
set和dict类似,但是set不储存value.
要创建一个set,需要提供一个list作为输入集合,例如:
1 | >>>names=set(['Mike','Bob','Lisa']) |
这就是一个set
重复元素在set中可以自动被过滤。
想要在set中增加元素,可以用add(key)的方法。例如:names.add(‘Nini’)。
想要删除元素,可以用remove(key)的方法,例如:names.remove(‘Nini’)。
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等。
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。