Python容器(下)

容器类型介绍

容器就是存放数据的

python 中的容器数据有多种形式,每种形式有自己的存储格式, 数据存储特性不一样

字符串 str 就是容器 存放一个一个字母 格式 : 单引号 '数据' ,双引号 "数据" ,三个引号 """ 数据 """

列表 list 格式: [数据1,数据2,数据3.....]

元祖 tuple 格式: (数据1,数据2,数据3,)

集合 set 格式: {数据1,数据2,数据3,}

字典 dict 格式: {key1:value1,key2:value....}

数据存储的特性

  • 有序和无序

    • 有序: 字符串,列表,元祖,字典

    • 无序: 集合

  • 数据重复性

    • 允许数据重复 字符串,列表,元祖,字典的value部分可以重复

    • 不允许重复 集合,字典的key值

  • 数据是否允许修改

    • 允许修改 列表,字典value数据可以修改,

    • 不允许修改 字符串 ,元祖

常用的字符串,列表和字典

一、字典

1.字典

字典数据格式

{k1:v1,k2:v2,k3:v3}

字典的本质就是给下标命名一个名字

user = [1,'张三',20,'男','篮球','1371111111','北京','23123@qq.com']

2.字典定义
# 字典定义
data_dict1 = {1:'hadoop',2:'python',3:'spark',4:'hadoop'}
data_dict2 = {'a':'hadoop','b':'python','c':'spark','d':'hadoop'}
print(data_dict1)
print(data_dict2)
# 字典中不要重复定义key值,保证key值唯一
data_dict3 = {'a':'hadoop','b':'python','c':'spark','a':'flink'}
print(data_dict3)
​
# 使用key的下标值进行value部分取值
print(data_dict1[2])
print(data_dict2['d'])
​
# 字典下标不支持切片操作
# print(data_dict1[1:4])
3.字典取值

字典的内容包含两部分 key 和 value

在字典取值时可以分别取出两部分的数据

  • 取value部分的数据

    • 方式1 通过key取value 一次只能取一个value值

      • data[key]

      • data.get(key)

    • 方式二 获取所有的value值

      • data.values()

# 取字典的value值
data_dict2 = {'a':'hadoop','b':'python','c':'spark','d':'hadoop'}
​
# 通过key取value
# 使用[] 取值,如果key不存在会报错
res = data_dict2['a']
print(res)
# get取值时  key不存在会返回一个None值
res2 = data_dict2.get('z')
print(res2)
​
# 将字典中value值全部取出
res3 = data_dict2.values()
print(res3)
  • 取key值部分

    • 获取所有key值

    • data.keys()

# 获取字典中的所有key值
res4 = data_dict2.keys()
print(res4)
4.字典的增加和修改数据

字典数据的增加和修改语法一样,针对va部分的数据进行增加和修改

data[key]=value 将key对应的value修改或增加新的值

key值不存在则是增加数据,key存在则是修改数据

# 增加或修改字典数据
data_dict = {'id':1,'name':'张三','age':20,'gender':'男'}
print(data_dict)
# key值存在,修改对应的value数据
data_dict['age'] = 22
print(data_dict)
​
# key不存在,则增加薪数据
data_dict['hobby'] = '篮球'
print(data_dict)
5.字典删除

del data[key]

# 删除字段数据
# 通过key确定删除的数据
data_dict = {'id':1,'name':'张三','age':20,'gender':'男'}
print(data_dict)
del data_dict['name']
print(data_dict)
​
# 清空数据
data_dict.clear()
print(data_dict)
6.for循环遍历
  • 格式

    • 字典for循环需要配合items方法

for 变量1,变量2 in data_dict.items():
    变量1接收key值部分
    变量2接受value部分
# 字典的for循环遍历
data_dict = {'id':1,'name':'张三','age':20,'gender':'男'}
​
for k,v in data_dict.items():
    print(k,v)
7.小结

一个用户数据如何存储?

姓名:张三 年龄:20 体重(kg):60 性别:男

在单个数据存储时,建议使用字典,字典的key可以用来描述数据是什么

['张三',20,60,'男'] ('张三',20,60,'男')

{'name':'张三','age':20,'weight':60,'gender':'男'}


多个用户数据如何存储?

姓名:李四 年龄:50 体重(kg):50 性别:男

{'name':'李四','age':50,'weight':50,'gender':'男'}


({'name':'张三','age':20,'weight':60,'gender':'男'},{'name':'张三','age':20,'weight':60,'gender':'男'})

user_list = [{'name':'张三','age':20,'weight':60,'gender':'男'},{'name':'张三','age':20,'weight':60,'gender':'男'}]

user_list.insert(0,{})

user_list.append{{}}

元组不能添加新数据,列表可以添加的新的数据

实际开发中就使用字典和列表组合完成多个数据存储

[{第一条数据},{第二条数据},{第三条数据}.....]

# 字典和列表数据组合完成多条数据存储
user1 = {'name':'张三','age':20,'gender':'男'}
user2 = {'name':'李四','age':22,'gender':'男'}
user3 = {'name':'王五','age':21,'gender':'男'}
# 将多个用户数据保存在列表中
data_list = []
data_list.append(user1)
data_list.append(user2)
data_list.append(user3)
print(data_list)
# 对每个用户数据进行处理 增加一个体重信息
for user in data_list:
    print(user)
    # 用户增加数据
    if user['name'] == '张三':
        user['weight'] = 55
    elif user['name'] == '李四':
        user['weight'] = 60
    else:
        user['weight'] = 100
​
print(data_list)

二、集合

1.集合

数据形式

{数据1,数据2,数据3}

不重复的无序数据

集合的主要场景是去重

2.集合的定义
# 集合定义
# 存储不可以修改的数据
data_set_int = {10, 4, 6, 21, 33, 18, 6}
data_set_str = {'hadoop', 'hive', 'oozie', 'spark', 'python', 'hive'}
data_set_tuple = {('hadoop', 'hive'), ('oozie', 'spark', 'python', 'hive')}
​
# 可修改数据无法存集合中
# data_set= {{'hadoop','hive'},{'oozie','spark','python','hive'}}
# data_set_list = {['hadoop','hive'],['oozie','spark','python','hive']}
# data_set_dict = {{'name':'hadoop','gender':'hive'}}
​
# 集合是无序且不重复
print(data_set_int)
print(data_set_str)
print(data_set_tuple)

有序的数据可以通过下标和for循环取值

list[0]

str[0]

tuple[0]

dict[key]

无序数据只能通过for循环取值

# 集合取值
data_set_str = {'hadoop', 'hive', 'oozie', 'spark', 'python', 'hive'}
for i in data_set_str:
    print(i)
3.集合增删改
  • 增加数据

    • add

  • 删除

    • remove

    • clear

  • 修改

    • update

    • 用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。

# 集合的增删改
data_set = {'a','c','a','d','q'}
​
# add添加数据
data_set.add('www')
print(data_set)
​
# 删除
data_set.remove('a')
print(data_set)
# 清空删除
# data_set.clear()
# print(data_set)
​
# update 更新数据,类似add操作,将参数2中的数据更新到集合中
data_set.update('c','e35')
print(data_set)
data_set.update('c',['ttt','3','3'])
print(data_set)
  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值