python基本数据类型分类及代码实现增删改查

1. 基本分类        

python 语言基本数据类型有多种分类:

两大类:数字型、序列

四大类:仅把数字型的四大类作为基本数据类型

六大类:把数字型作为一类,加上序列五大类,共计六大类(最常见)

九大类:数字型四类加上序列五类,共计九大类

但万变不离其宗,只要掌握如下基本类型的操作才是本质,至于如何分类只是为了辅助记忆而已,具体拓扑结构如下所示。

值得注意的是,列表和数组是不同的数据类型,数组array是第三方库numpy提供的数据类型,不属于基本数据类型,笔者后续会单独讲解numpy的array增删改查及相关方法调用。

同理,系列Series和数据框DataFrame也是第三方库pandas提供的数据类型,同样也不属于基本数据类型,这里不在赘述,笔者后续单独讲解。

 

 

 2. 数字型

由于Python是一种动态类型语言,变量的数据类型在运行时被确定,不需要在代码编写时声明类型。所以数字型数据类型通过声明变量直接赋值即可获得。

整型浮点型可相互进行运算,二进制整型和整型其实都是同一个类型,只是表现形式不同而已,在使用print函数时,会自动将二进制整型以十进制的整型形式打印出来。

a = 2  # 整型(int)在数字中,正整数、0、负整数都称为整型。
b = 1.1  # 浮点型(float)含有小数点的数据都是浮点型
c = 0b0011  # 二进制整型(uint8) 二进制表示整型
#type() ->返回值:变量的类型
print(type(a))  # <class 'int'>
print(type(b))  # <class 'int'>
#可以进行算数运算
num = a + a + a  # 6
print(type(num))  # <class 'int'>
num = b + b + b  # 3.3
print(type(num))  # <class 'float'>
num = a + b  # 3.1
print(type(num))  # <class 'float'>
print(c)  # 3
print(type(c))  # <class 'int'>
print(c + a)  # 5

布尔型复数型同理也可直接通过赋值获得,但不能与其他数字型进行运算,布尔类型可通过其他运算符的结果获得:

#布尔型:表示真假
a = True  # 布尔型(bool)
b = False
# 复数类型(complex)
c = 1 + 1j  
print(c*c)  # 2j

3. 字符串

字符串可使用三种引号:单引号、双引号、三引号

单双引号不能换行,三引号可换行

如果字符串内部有转义字符,需要使用元字符串,即在字符串之前加上字母 r ,表示不转字符,原型化输入字符串

message1 = 'Hello World!' # Hello World!
print(message1)
message2 = "你好!" # 你好!
print(message2)
message3 = """你好,
peter!"""
print(message3)
# 你好,
# peter!
# 特点:用引号包起来的就是字符串

special = 'let\ns go!'
print(special)  
# let
# s go!
special = r'let\ns go!'  # let\ns go!
print(special)

4. 列表

由一系列按特定顺序排列的元素组成,用 [ ] 来表示列表,并且用逗号(必须是英文逗号)进行分隔元素,列表里的元素是有序且可重复的。其增删改查操作见代码所示:

drinks = ['脉动', '可乐', 'fenda', 'qi xi', 1]

"""***************************** 1  查 **************************************"""
# 访问列表内的某个元素 ['脉动', '可乐', 'fenda', 'qi xi', 1]
print(drinks[3].title())  # Qi Xi
# 访问某些元素【切片】
print(drinks[0:2])  # ['脉动', '可乐'] 不包括索引为2的元素

"""***************************** 2  增 **************************************"""
# 在列表末尾添加元素
drinks.append('啤酒')
print(drinks)  # ['脉动', '可乐', 'fenda', 'qi xi', 1, '啤酒']
# 在任意位置添加元素
drinks.insert(1, '插入')
print(drinks)  # ['脉动', '插入', '可乐', 'fenda', 'qi xi', 1, '啤酒']

"""***************************** 3  删 **************************************"""
# 删除列表内的某个元素 ['脉动', '插入', '可乐', 'fenda', 'qi xi', 1, '啤酒']
del drinks[1]
print(drinks)  # ['脉动', '可乐', 'fenda', 'qi xi', 1, '啤酒']
# pop()删除元素
pop_value = drinks.pop()  # 删除最后一个元素
# 删除后字符串为:['脉动', '可乐', 'fenda', 'qi xi', 1], 被删除元素为:啤酒
print("删除后字符串为:{}, 被删除元素为:{} ".format(drinks, pop_value))
drinks.pop(1)  # 删除索引元素
print(drinks)  # ['脉动', 'fenda', 'qi xi', 1]
# 根据值删除元素
drinks.remove("脉动")  # 如果有多个脉动,只删除第一个脉动
print(drinks)  # ['fenda', 'qi xi', 1]

"""***************************** 4  改 **************************************"""
# ['fenda', 'qi xi', 1]
drinks[0] = ("可乐")
print(drinks)  # ['可乐', 'qi xi', 1]
# 排序
cars = ['bmw', 'tesla', 'audi']
print(cars)  # ['bmw', 'tesla', 'audi']
# sort()方法[升序]
cars.sort()
print(cars)  # ['audi', 'bmw', 'tesla']
# sort()方法【降序】
cars.sort(reverse=True)
print(cars)  # ['tesla', 'bmw', 'audi']

5. 元组

元组属于序列的一种,有序且可重复,但和列表相比,元组中的元素只可查,不可增删改,但元组变量可被整个覆盖修改。

location = (1, 2, 3)
print(location)  # (1, 2, 3)
# 重新创建新元组,覆盖旧元组即可实现修改
location = (10, 20, 30)
print(location)  # (10, 20, 30)
# 索引查找
print(location[1])  # 10
# 切片查找
print(location[0:2])  # (10, 20)
# 删除整个元组
del location
print(location)  # NameError: name 'location' is not defined

6. 集合

集合是一种无序且不可重复的序列,以花括号括起来的元素就是集合,列表和集合可以互转,因为集合无序,所以就无法使用索引查找。

fruits = ['apple','banana', 'orange','apple','banana']
seted_fruits = set(fruits)  # 列表list 转 集合set
listed_fruits = list(seted_fruits)  # 集合set 转 列表list
print(seted_fruits)  # {'apple', 'banana', 'orange'}
print(listed_fruits)  # ['banana', 'orange', 'apple']

#添加
seted_fruits.add('peach')
print(seted_fruits)  # {'apple', 'orange', 'peach', 'banana'}

#删除
seted_fruits.pop()  # 移除第一个元素
print(seted_fruits)  # {'orange', 'peach', 'banana'}
seted_fruits.remove('peach')
print(seted_fruits)  # {'orange', 'apple'}

#清空
seted_fruits.clear()
print(seted_fruits)  # set()

7. 字典

字典每个元素是无序的,每个元素由键值对组成。值得注意的是,一般实际开发中,字典往往和列表结合起来用,每个字典作为列表的一个元素套嵌到列表中使用。

# 新建一个字典
person = {"name": "peter",
          "age": 24,
          "gender": "male",
          "location": "bj"}
print(person)  # {'name': 'peter', 'age': 24, 'gender': 'male', 'location': 'bj'}

""" ****************** 1 查 访问字典 *********************** """
# 得到键值所对应的值
print(person["name"])  # peter
print(person["age"])  # 24

# 得到所有的键值【使用循环,并且使用keys()】
a = []
for key in person.keys():
    a.append(key)
print(a)  # ['name', 'age', 'gender', 'location']

# 得到所有的值【使用循环,并且使用values()】
b = []
for value in person.values():
    b.append(value)
print(b)  # ['peter', 24, 'male', 'bj']

# 同时得到所有的键值和值【使用循环,使用items()】
a = []
b = []
for key, value in person.items():
    a.append(key)
    b.append(value)
print(a)  # ['name', 'age', 'gender', 'location']
print(b)  # ['peter', 24, 'male', 'bj']

""" ****************** 2 增 添加键值对 *********************** """
person["height"] = 175
person["weight"] = 65
print(person)  # {'name': 'peter', 'age': 24, 'gender': 'male', 'location': 'bj', 'height': 175, 'weight': 65}
print(len(person))  # 6

""" ****************** 3 删 删除键值对 *********************** """
del person["height"]
print(person)  # {'name': 'peter', 'age': 24, 'gender': 'male', 'location': 'bj', 'weight': 65}

""" ****************** 4 改 修改value值 *********************** """
print(person)  # {'name': 'peter', 'age': 24, 'gender': 'male', 'location': 'bj', 'weight': 65}
person["name"] = "siri"
print(person)  # {'name': 'siri', 'age': 24, 'gender': 'male', 'location': 'bj', 'weight': 65}

8. 总结

本文讲述了按不同分类逻辑,python基本数据类型的分类方式,并特别指出:数组array、系列 series、数据框dataframe 不属于基本数据类型,分别是numpy和pandas第三方库的数据类型。

并通过代码分别讲解了这些基本数据类型的增删改查操作方法,序列中容易混淆的四种基本数据类型增删改查操作如下表所示:

四种序列增删改查操作对比
列表元组集合字典
索引 / 切片索引 / 切片不支持key
append / insert不支持addkey
del / pop不支持remove / pop / cleardel
索引 / sort不支持不支持key

注:

元组不支持对元素删除操作,但整个元组变量可通过del方法删除

集合的clear是对集合中所有元素进行删除,但集合变量本身还存在

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值