python数据类型(中)

常见的数据类型:

  • int,整数类型(整形)
  • bool,布尔类型
  • str,字符串类型
  • list,列表类型
  • tuple,元组类型
  • dict,字典类型
  • set,集合类型
  • float,浮点类型(浮点型)
    列表和元组
  • list,列表类型,用于存储一些数据的容器(有序 & 可修改)。【占常用的80%】
  • tuple,元组类型,用于存储一些数据的容器(有序 & 不可修改)。【占常用的20%】

1.列表(list)

1.1 定义

列表(list),是一个有序可变的容器,在里边可以存放多个不同的数据类型的元素。

  • 不可变类型:字符串、布尔、整型(已最小,内部数据无法进行修改)
  • 可变类型:列表(内部元素可以修改)

2.独有功能

Python中为所有的列表类型的数据提供了一批独有的功能。

做一个字符串和列表的对比:

  • 字符串,不可变,即:创建好之后内部就无法修改。【独有功能都是新创建一份数据】
  • 列表,可变,即:创建好之后内部元素可以修改。【独有功能基本上都是直接操作列表内部,不会创建新的一份数据】

常见功能:

2.1.1 追加

  • 在原列表中尾部追加值
    示例:
list = []

v1 = input("请输入姓名")
data_list.append(v1)

v2 = input("请输入姓名")
data_list.append(v2)

print(data_list)

2.1.2 批量追加

  • 将一个列表中的元素逐一添加到另外一个列表
    示例
names = ["张三","李四","王五"]
names.extend( [11,22,33] ) # weapon中的值逐一追加到names中
print(tools) # ["张三","李四","王五",11,22,33]

2.1.3 插入

  • 在原列表的指定索引位置插入值
    示例
user_list = ["哈哈","张","王"]
user_list.insert(0,"赵")
user_list.insert(2,"李")
print(user_list) #['哈哈', '赵', '李', '张', '王']

2.1.4 删除

  • 在原列表中根据值删除(从左到右找到第一个删除)【慎用,如列表里面没有会报错】
    示例
user_list = ["gai","dog","cat","fish"]
user_list.remove("dog")
print(user_list)

2.1.5 索引删除

  • 在原列表中根据索引踢出某个元素(根据索引位置删除)
    示例
name_list = ["张三", "李四", "王五"]
#               0       1      2
name_list.pop(1)
print(name_list)  # ['张三', '王五']

2.1.6 清空原列表

示例

name_list = ["张三", "李四", "王五"]
name_list.clear()
print(name_list) # []

2.1.7 根据值获取索引(从左到右找到第一个删除)【慎用,找不到报错】

示例

name_list = ["张三", "李四", "王五"]
#               0       1      2
if "李四" in name_list:
    index = name_list.index("李四")
	print(index)
else
	print("不存在")

2.1.8 元素列表排序

示例

# 数字排序
num_list = [11, 22, 4, 5, 11, 99, 88]
print(num_list)
num_list.sort()  # 让num_list从小到大排序
num_list.sort(reverse=True)  # # 让num_list从大到小排序
print(num_list)

注意:排序时内部元素无法进行比较时,程序会报错(尽量数据类型统一)。

2.1.9 反转原列表

示例

name_list = ["张三", "李四", "王五"]
name_list.reverse()

print(name_list)

3.1公共功能

3.1.1 相加

  • 两个列表相加获取生成一个新的列表。

3.1.2 相乘

  • 列表*整型 将列表中的元素再创建N份并生成一个新的列表。

3.1.3 运算符in包含

  • 由于列表内部是由多个元素组成,可以通过in来判断元素是否在列表中。

注意:列表检查元素是否存在时,是采用逐一比较的方式,效率会比较低。

3.1.4 获取长度

示例

name_list = ["张三", "李四", "王五"]
print( len(name_list) )

3.1.5 索引

  • 元素的操作
    示例
name_list = ["张三", "李四", "王五"]
print(name_list[2])
name_list[0] = "李某某"
print(name_list) 
# ['李某某', '李四', '王五']
del name_list[1]
print(name_list)
#['李某某', '王五']

注意:超出索引范围会报错。
提示:由于字符串是不可变类型,所以他只有索引读的功能,而列表可以进行 读、改、删

3.1.6 切片

  • 多个元素的操作(很少用)

3.1.7 步长

3.1.8 for循环

  • 类似于字符串

4.1转换

  • int、bool无法转换成列表

str

5.1 其他

5.1.1 嵌套

  • 列表属于容器,内部可以存放各种数据,所以他也支持列表的嵌套
  • 对于嵌套的值跟索引类似

2.元组

  • 列表(list),是一个有序可变的容器,在里面可以存放多个不同类型的元素。
  • 元组(tuple),是一个有序不可变的容器,在里面可以存放多个不同类型的元素。

2.1 定义

  • 注意:建议在元组的最后多加一个逗号,用于标识他是一个元组。

2.2 独有功能

  • (无)

2.3公共功能

  • 相加,两个列表相加获取生成一个新的列表。
  • 相乘,列表*整型 将列表中的元素再创建N份并生成一个新的列表。
  • 获取长度(len)
  • 索引([ 0 ])
  • 切片 ([ 0:2 ])
  • 步长 ([ 0:2 :1 ])
  • for循环
  • 目前:只有 str、list、tuple 可以被for循环。例: “xxx” [11,22,33] (111,22,33)

2.4转换

  • 其他类型转换为元组,使用tuple(其他类型),目前只有字符串和列表可以转换为元组。

2.5 其他

2.5.1 嵌套

  • 由于元组和列表都可以充当容器,他们内部可以放很多元素,并且也支持元素内的各种嵌套。