Python 数据类型
列表(数组)
列表List是Python中使用最频繁的数据类型,在其他语言中通常叫数组
专门用于存储一串信息
列表用[ ]定义,数据之间使用","分隔
列表的索引从0开始
定义
name_list1 = ["张三","李四","王五"]
#定义一个空列表
name_list2 = []
列表的常用操作:
增
temp = [1,'a',3,4,'b',5]
temp.insert(2,4) #在索引为2的位置插入数据4
temp.append() #追加数据到列表末尾
temp.extend([7,8,9]) #迭代的去增加
temp.extend(temp2) #将另外一个列表temp2的内容扩展到temp列表中,追加到列表末尾
删
del temp #整个列表连同存储空间全部一起删除
del temp[索引号]
#del 关键字本质上是将一个变量从内存中删除
temp.pop(索引号) #根据索引去删,不带参数默认删除列表中最后一个元素
temp.remove(内容) #删除括号内的内容。如果该内容存在不止一个,则删除第一次出现的数据;如果数据不存在该内容,则报错
temp.clear() #删除列表内的所有内容,使列表为空
改
temp[0] = 1 #修改列表temp中索引为0的内容为1
temp[1:3] = ["1","3"]
查
temp.count(1) #查询1出现了几次
temp.index(1) #查询第一个出现的1的索引号
len(temp) #len函数可以统计列表中元素的总数
排序
temp.sort() #升序排序 reverse默认为False,reverse表示是否降序
temp.sort(reverse=True) #降序排序
temp.reverse() #逆序
循环遍历
#使用迭代遍历列表
for i in list1:
循环体
...
#顺序的从列表中依次获取数据,每次循环过程中,数据都会保存在i这个变量中,在循环体内部可以访问到当前这次获取到的数据
应用场景
虽然Python的列表中可以存储不同类型数据,但是在开发中,一般用列表来存储相同类型的数据,通过迭代遍历,在循环体内部,针对列表中的每一项元素执行相同的操作
字典
定义
字典用{}定义
#字典是一个无序的数据集合,使用print函数输出字典时,通常输出的顺序和定义的顺序是不一样的
zhangsan = {"name":"张三",
"age":18
"height":180
"weight":70}
字典使用键值对存储数据,键值对之间使用","分隔
键key是索引
值value是数据
键和值之间使用“:”分隔
键必须是唯一的
值可以取任何数据类型,但键只能使用字符串、数字或元祖
key:value
通常用于存储描述一个物体的相关信息
字典是无序的对象集合
增
dic = {"name":hanliheng,"age:"20"}
dic["job"] = "IT" #直接加到最后
dic.setdefault('key',value)
删
dic.pop("age") #删除对应的键值对
dic.clear() #清空字典
改
dic["age"] = 18 #将age修改为18
dic2 = {"height":185}
dic.update(dic2) #合并字典,如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
查
value = dic["age"]
value = dic.get("age","查无此项'') #查找age,如果找不到则打印”查无此项“
其他操作
print(len(dic)) #统计键值对数量
遍历字典
#变量k是每次循环中获取到的键值对的key
han_dic = {"name":"小韩",
"QQ":"123456",
"wechat":"666666"}
for k in han_dic:
print("%s - %s"%(k,han_dic[k]))
#[out]: QQ - 123456
# wechat - 666666
# name - 小韩
应用场景
#将多个字典放在一个列表中
card_list = [
{"name":"张三",
"QQ":"123456",
"phone":"123999"},
{"name":"李四",
"QQ":"78999",
"phone":"123888"}
]
for card_info in card_list: #遍历列表
print(card_infor)
元组
Tuple
元祖与列表相似,不同之处在于元祖的元素不能修改
用于存储一串信息,数据之间使用","分隔
元祖用( )定义
元祖的索引从0开始
元祖相当于一个只读列表,但是可以改元组里的列表
定义
tuple1 = ("zhangsan",18,185)
tuple2 = () #定义一个空元祖,开发中一般不会这样使用,因为元祖的元素不能修改
tuple3 = (5,) #定义一个只有一个元素的元祖
#如果这样写:tuple3 = (5),python解释器会自动去掉括号,认为tuple = 5,即定义了一个int类型的变量
方法
#取值
print(tuple1[0]) #打印元祖中索引号为0的内容
#取索引
tuple1.index("zhangsan") #取出"zhangsan"这个元素在元祖中的索引
#统计计数
tuple1.count("zhangsan") #统计"zhangsan"在元祖中出现的次数
len(tuple1) #统计元祖中元素的个数
循环遍历
for i in tuple1:
print(i)
#使用格式字符串拼接i这个变量不方便
#因为元祖中通常保存的数据类型是不同的
#所以针对元祖的循环遍历需求不是很多
应用场景
info = ("zhangsan",18)
print("%s 的年龄是 %d" %info)
#格式化字符串后面的“()”本质上就是元祖
print("%s 的年龄是%d 身高是%.2f" %("张三",18,180))
info_tuple = ("张三",18,180)
print("%s 的年龄是%d 身高是%.2f" %info_tuple)
info_str = "%s 的年龄是%d 身高是%.2f" %info_tuple
print(info_str)
集合
集合是无序的,不重复,确定性的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不 可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:
去重,把一个列表变成集合,就自动去重了。同时也不可变
关系测试,测试两组数据之前的交集、差集、并集等关系。
创建集合
set1 = set({1,2,'barry'})
set2 = {1,2,'barry'}
print(set1,set2)
增
set1 = {'abc','def',123,'asdas'}
# add()函数的参数只能接收可哈希数据类型,即不可变数据类型,
比如整型、浮点型、元组、字符串
set1.add('qwer')
print(set1)
# 我们使用update()向集合中添加元素时,update接收的参数应该是可迭代的数据类型,比如字符串、元
组、列表、集合、字典。这些都可以向集合中添加元素,但是整型、浮点型不可以。
set1.update('A')
#update:迭代着增加
print(set1)
set1.update('哈哈哈')
print(set1)
set1.update([1,2,3])
print(set1)
删
set1 = {'abc','def',123,'asdas'}
set1.remove('abc')
print(set1)
set1.pop()
# 随机删除一个数
print(set1)
set1.clear()
# 清空合集
print(set1)
del set1
# 删除合集
print(set1)
其他操作
set1 = {1,2,3,4,5}
set2 = {3,4,5}
set1.intersection(set2) #交集
set1.union(set2) #并集
set1-set2 set1.difference(set2) #差集
循环
在Python中,可以使用for循环遍历所有非数字型类型的变量:列表、元祖、字典以及字符串
for i in range(0,3):
print(i)