前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python集合与字典

Python集合与字典

作者头像
小雨coding
发布于 2020-06-30 10:12:15
发布于 2020-06-30 10:12:15
1K00
代码可运行
举报
文章被收录于专栏:小雨编程小雨编程
运行总次数:0
代码可运行

本节知识大纲

一、Set 集合的概念

1. set 集合的性质
  • set 集合是一组无序的且不能重复的集合,打印 set 集合时会自动消除重复的元素项;
  • set 集合用大括号表示;
  • set 集合存储的时候就是无序的,它不支持通过索引的方式进行访问;
  • set 集合在初始化时的顺序与打印出来时的顺序是不一样的;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set01 = {11,22,33,44,55}
2. set 集合存储的原理

set 集合在存储的时候,先把元素转为哈希值,哈希值是顺序存储的,哈希算法是用来判断两个对象是否是同一个;

3. 创键 set 集合的方法

(1)创建的时候,直接初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建set集合
set01 = {11,22,33,44,55,66,77}
print(set01)

(2)创建空的 set 集合,然后往里加入值

创建空 set 不能想当然的使用set{},这样创建的是一个空字典,创建空 set 集合应该使用方法set()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建空set
set02 = set()
set02.add("Tom")
set02.add("Bob")
set02.add("Jerry")
print(set02)
4.遍历 set 集合的方法

使用 for 循环遍历集合

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 遍历set集合
set01 = {11,22,33,44,55,66,77}
for i in set01:
    print(i,end=" ")

二、set 集合常用方法

1. 不可以使用加法运算和乘法运算符

列表可以使用加法运算符将两个列表拼接在一起,set 集合不可以使用;列表可以使用乘法运算符将指定列表打印指定次数,set 集合不可以使用;

2. 赋值运算符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set01 = {11,22,33}
set02 = set01
3. 返回集合中元素的长度
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set01 = {11,22,33}
print(len(set01))
4. 判断是否包含元素
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 判断是否包含元素
set01 = {11,22,33}
print("是否包含22:",22 in set01)
5. 排序和反转

直接的排序是不支持的,sort()reverse()但是支持临时排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# set支持临时排序
set01 = {11,2,-1,222,23}
print(sorted(set01))
6. 添加元素

使用 add()方法添加元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set01 = {11,22,33}
set01.add(44)
print(set01)
7. 删除元素

删除元素有 discard、remove、pop 方法 discard 删除原先不存在的值,集合不发生变化而且也不会报错

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# discard方法删除元素
set01 = {11,0,22,-22,99,100,33}
print("删除22前",set01)
set01.discard(22)
print("删除22后",set01)
set01.discard(122)
print("删除一个不存在的122",set01)

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
删除22{0, 33, 99, 100, -22, 11, 22}
删除22{0, 33, 99, 100, -22, 11}
删除一个不存在的122 {0, 33, 99, 100, -22, 11}

但是如果用remove方法,要删除的值如果不存在,那么程序便会报KeyError 错;使用pop方法删除,默认删除集合中第一个元素(按照hash值存储的)pop 函数的参数不能指定某一个要删除元素的具体的值。

8. 数值元素计算(max,min,sum)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set03 = {11,2,222,12,1,456,-2}
print(min(set03))  # 打印集合中的最小值
print(max(set03))  # 打印集合中的最大值
print(sum(set03))  # 打印集合中的数值元素的和
9. set 集合逻辑运算

交集、并集、差集、对等差集、是否子集、是否父集,两种表示方法任选一个即可;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 逻辑运算
set01 = {11,22,33,44,55}
set02 = {44,55,66,77,88}
# 交集
print(set01 & set02)
print(set01.intersection(set02))
# 并集
print(set01 | set02)
print(set01.union(set02))
# 差集
print(set01 - set02)
print(set01.difference(set02))
# 对等差集
print(set01 ^ set02)
print(set01.symmetric_difference(set02))
print((set01-set02) | (set02-set01))
# 判断是否是子集
set01 = {11,22,33}
set02 = {11,22}
print(set01.issubset(set02))
print(set01 <= set02)
print(set01.issuperset(set02))
print(set01 >= set02)
10. 类型转换

set 集合可以转化为 list 列表、tuple 元组、str 字符串,可以直接通过类型转换来实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 类型转化
set01 = {11,2,2,3,0,1,2}
list01 = list(set01)  # 转换为列表
tuple01 = tuple(set01)  # 转换为元组
str01 = str(set01)  # 转换为字符串

三、set 集合综合案例

案例01

生成 0-10 之间 5 个不相等的数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 生成0-10之间5个不相等的数
import random
set01 = set()
while len(set01) < 5:
    set01.add(random.randint(1,10))
print(set01)

案例02

十个学生,姓名自行添加,有三门考试:语文、数学、英语,随机为这 10 名学生生成分数【50-100】,要求每一门科目中所有学生分数不能重复

需求

【1】统计出每门分数前三名和后三名

【2】统计出总分的前三名和后三名

【3】在【50-100】的数字中,哪些数字没有在三门的分数中出现过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import random

# 定义一个生成学科成绩的函数
def get_result(result:set):
    while True:
        temp = random.randint(50,100)
        if temp not in result:
            result.add(temp)
            break
        else:
            continue
    return result

student_name = ["赵一","钱二","孙三","李四","周五","吴六","郑七","王八","冯九","陈十"]
subject_list = ["语文","数学","英语"]
student_result = []
chinese_result = set()  # 存储语文的分数
math_result = set() # 存储数学的分数
english_result = set()  # 存储英语的分数

# 开始生成分数
for i in range(len(student_name)):
    chinese_result = get_result(chinese_result)
    math_result = get_result(math_result)
    english_result = get_result(english_result)

# 把三个set集合转为list
chinese_result = list(chinese_result)
math_result = list(math_result)
english_result = list(english_result)

# 生成成绩明细
for i in range(10):
    temp_list = []
    temp_list.append(chinese_result[i])
    temp_list.append(math_result[i])
    temp_list.append(english_result[i])
    student_result.append(temp_list)

# 需求1:统计每门科目的前三名和后三名【包括姓名和具体的分数】
chinese_one = max(chinese_result)
print("语文第一名:姓名:%s 分数:%d"%(student_name[chinese_result.index(chinese_one)],chinese_one))
chinese_two = sorted(chinese_result)[8]
print("语文第二名:姓名:%s 分数:%d"%(student_name[chinese_result.index(chinese_two)],chinese_two))
chinese_three = sorted(chinese_result)[7]
print("语文第三名:姓名:%s 分数:%d"%(student_name[chinese_result.index(chinese_three)],chinese_three))
chinese_last_one = sorted(chinese_result)[0]
print("语文倒数第一名:姓名:%s 分数:%d"%(student_name[chinese_result.index(chinese_last_one)],chinese_last_one))
chinese_last_two = sorted(chinese_result)[1]
print("语文倒数第二名:姓名:%s 分数:%d"%(student_name[chinese_result.index(chinese_last_two)],chinese_last_two))
chinese_last_three = sorted(chinese_result)[2]
print("语文倒数第三名:姓名:%s 分数:%d"%(student_name[chinese_result.index(chinese_last_three)],chinese_last_three))
# 【2】统计出总分的前三名和后三名
student_total_result = []
for i in student_result:
    student_total_result.append(sum(i))
total_one = sorted(student_total_result)[9]
print("总分第一名是%s 分数%d"%(student_name[student_total_result.index(total_one)],total_one))
total_two = sorted(student_total_result)[8]
print("总分第二名是%s 分数%d"%(student_name[student_total_result.index(total_two)],total_two))
total_three = sorted(student_total_result)[7]
print("总分第三名是%s 分数%d"%(student_name[student_total_result.index(total_three)],total_three))
# 【3】在【50-100】的数字中,哪些数字没有在三门的分数中出现过
all_num = set()
for i in range(50,101):
    all_num.add(i)
had_num = (set(chinese_result) | set(math_result) | set(english_result) )
print("未出现的数字有:",all_num - had_num)
print(len(all_num - had_num))

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
语文第一名:姓名:赵一 分数:98
语文第二名:姓名:王八 分数:90
语文第三名:姓名:周五 分数:86
语文倒数第一名:姓名:吴六 分数:54
语文倒数第二名:姓名:郑七 分数:56
语文倒数第三名:姓名:冯九 分数:60
总分第一名是赵一 分数292
总分第二名是周五 分数248
总分第三名是李四 分数236
未出现的数字有: {50, 52, 53, 55, 58, 62, 63, 64, 66, 67, 69, 72, 73, 75, 76, 77, 78, 81, 88, 89, 91, 92, 93, 94, 97, 99, 100}
27

四、字典的概念

1. 概念:

字典是一组无序的且不重复的(key-value)数据集合,它是一种特殊的 set 集合;字典中元素由 key 和 value 组成,比如:95001:“张三”, 冒号前面称为 key,冒号后面称为 value

2. 注意事项:

(1)通过key可以访问value,反之不可以

(2)对字典某个键值对的值进行访问需要使用字典名加中括号来进行访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dic01 = {95001:"张三",95002:"李四",95004:"王五"}
print(dic01[95001])

(3)字典中的元素不能重复,即字典中不允许出现相同的键值对,在字典中 key 不能重复,如果多个键值对有相同的 key 则以最后一个 key 的键值对为准,因为覆盖了全面的键值对。value 是可以重复的;

(4)字典中的键值对是无序的,不可以用下标进行访问

(5)key 必须要是不可改变的类型:int、float、bool、tuple、str,不可以是列表、集合等可以改变的数据类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 字典中使用元组作为键表示地理位置经纬度
dic01 = {(32,122):"徐家汇",(31,120):"无锡"}

(6)value 类型可以存储任何类型的 Python 数据类型

五、字典创建和初始化

1. 字典的创建

(1)创建的时候直接初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 字典在创建的时候直接初始化
student_result = {"张三": 342,"李四": 334,"王五": 443}
print(student_result["张三"])

(2)创建空的后期添加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建一个空的字典,后期一个个添加
student_result = {}
student_result["张三"] = 344
student_result["李四"] = 321
student_result["王五"] = 345
print(student_result)
2. 删除字典的元素

删除字典的元素有三种方法

(1)pop()方法

参数传入 key,pop(key)可以删除指定键值对

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用pop(key)
student_result = {"张三": 342,"李四": 334,"王五": 443}
print(student_result)
student_result.pop("张三")  # 删除“张三”
print(student_result)

如果传入的 key 不存在,程序会报 keyvalue 异常。

(2)popitem()方法

不需要参数即可删除字典中最后一个元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用popitem() 删除字典的最后一个
student_result = {"张三": 342,"李四": 334,"王五": 443}
print(student_result)
student_result.popitem()
print(student_result)

(3)clear 方法 使用 clear 方法删除整个字典

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
student_result = {"张三": 342,"李四": 334,"王五": 443}
print(student_result)
student_result.clear()
print(student_result)

六、字典元素的遍历和访问

1. 字典元素的访问

这里我们先假设有一个字典,key 为学生学号,value 为成绩

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dict01 = {95001:56,95002:89,95003:77,95004:87}

可以通过 dict01[95001]来访问该学号的,但是如果 key 不存在怎么办呢?有两个解决办法,setdefault()和 get()方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(dict01.setdefault(95004,"None")) # 如果key存在正常查找,如果不存在返回定义的"None"
print(dict01.get(95001,"None")) # 避免获取每个key不存在出现异常,所设置的初始值

我们前面关于字典元素的删除也可以通过这种方式来避免异常的发生

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(dict01.pop(95001,"None"))  # 如果key存在则返回对应的值,否则返回None
2. 字典元素的遍历

(1)标准遍历方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dict01 = {95001:56,95002:89,95003:77,95004:87}
for i in dict01:
    print(i,":",dict01[i])

(2)使用 items 遍历

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dict01 = {95001:56,95002:89,95003:77,95004:87}
print(dict01.items())   # 使用items遍历
print(list(dict01.items())) # 结果转化为list
print(list(dict01.items())[0])  # 访问list第一个元素,这里是(95001,56)
# 遍历
list01 = list(dict01.items())
for i in list01:
    print(list(i)[0],list(i)[1])

(3)使用 keys 遍历

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keys_list = list(dict01.keys())
for i in keys_list:
    print(i,":",dict01[i])

(4)使用 keys 和 values 遍历

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keys_list = list(dict01.keys())  # 把字典转化为keys
values_list = list(dict01.values())  # 把字典转化为values
for i in range(len(keys_list)):
    print(keys_list[i],":",values_list[i])

七、字典的常用方法

1. 合并与多次打印输出

字典和 set 的存储模式使一样的,乘号和加号是不能用的。 两个字典的合并不能用加号,而是用 update 进行合并;字典的多次打印输出不能像列表那样直接使用乘号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dic01 = {95001:88,95002:99,95003:67}
dic02 = {95004:89,95005:87,95006:99}
# print(dic01 + dic02)  # 加号合并输出不支持
# print(dic01 * 3)  # 乘号多次输出不支持
dic01.update(dic02)
print(dic01)
2. 复制操作

可以直接使用赋值符号将 dic01 赋给 dic03,如果 dic01 里某个元素发生了改变,dic03 也会发生改变。如果不想让 dic03 元素跟着发生改变则可以使用浅复制方法,把存储的每一个值索引复制一份,改变字典元素的一个元素而另外一个复制的字典值不变。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dic03 = dic01.copy()
3. 其它常用操作

(1)获取字典的长度 使用 len()方法获取字典的长度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dic01 = {95001:88,95002:99,95003:67}
print(len(dic01))

(2)判断字典是否包含 使用关键词in判断 key 是否包含

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dic01 = {95001:88,95002:99,95003:67}
print(95001 in dic01)

(3)排序 按照 key 进行排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dic01 = {95001:88,95002:99,95003:67}
print(sorted(dic01))

打印出来的结果为只有 key 的列表

(4)计算 max、min、sum 都是针对 key 的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dic01 = {95001:88,95002:99,95003:67}
print(max(dic01)) # 打印最大的索引
print(min(dic01))  # 打印最小的索引
print(sum(dic01))  # 打印索引的和

(5)用列表作为索引创建新的字典 如果我们已经有了某个列表,我们可以根据列表创建字典的键,比如已知学号列表 student_no,可以创建一个新的由学号列表为键的成绩字典 student_result。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
student_no = [95001,95002,95003,95004]  # 学号列表
student_result = {}.fromkeys(student_no)  # 从学号列表获取keys
student_result[95001] = 97  # 对字典中的元素进行直接赋值
print(student_result)

八、字典的案例演示

案例

有10个学生,姓名自行添加。有三门考试:语文、数学、英语,随机为这 10 名学生生成分数【50-100】

需求

打印一张总分倒序的成绩表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 有10个学生,姓名自行添加。有三门考试:语文、数学、英语,随机为这10名学生生成 分数【50-100】需求:打印一张总分倒序成绩表

import random
# 初始化学生基本信息
dict_student_info = {95001:"赵一",95002:"钱二",95003:"孙三",95004:"李四",95005:"周五",
                 95006:"吴六",95007:"郑七",95008:"王八",95009:"冯九",95010:"陈十"}
# 生成成绩
student_result = []
for i in range(len(dict_student_info)):
    temp_result = []
    for j in range(3):
        temp_result.append(random.randint(50,100))
    student_result.append(temp_result)
# 组合存储结构
total_student_result = {}
# total_student_result = {}.fromkeys(list(dict_student_info.keys()))
# print(total_student_result)
# 生成总分的list
total_result = []
for i in student_result:
    total_result.append(sum(i))
# print(total_result)

# 把总分倒序排列
total_result.sort(reverse = True)
# print(total_result)

# 获得学生的学号
student_sno = list(dict_student_info.keys())
# 遍历
index = 0
for i in student_sno:
    temp_total = {}
    temp_total["姓名"] = dict_student_info[i]
    temp_total["明细"] = student_result[index]
    temp_total["排名"] = total_result.index(sum((student_result)[index])) + 1
    temp_total["总分"] = sum((student_result)[index])
    total_student_result[i] = temp_total
    index += 1

# for i in student_sno:
#     print(i,":",total_student_result[i])
# 打印成绩
print("\n################成绩表################")
print("=====================================")
print("名次 学号  姓名 语文 数学 英语 总分  均分")
for i in range(len(total_student_result)):
    for j in total_student_result:
        if total_student_result[j]["排名"] == (i+1):
            print(i+1,end="\t")
            print(j,end=" ")
            print(total_student_result[j]["姓名"],end=" ")
            print(total_student_result[j]["明细"][0],end="  ")
            print(total_student_result[j]["明细"][1],end="  ")
            print(total_student_result[j]["明细"][2],end="  ")
            print(total_student_result[j]["总分"],end=" ")
            print("%.2f" % ((total_student_result[j]["总分"])/3))
            break
        else:
            continue
print("=====================================")

输出结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
################成绩表################
=====================================
名次 学号  姓名 语文 数学 英语 总分  均分
1 95003 孙三 100  94  65  259 86.33
2 95006 吴六 53  80  97  230 76.67
3 95001 赵一 68  69  90  227 75.67
4 95007 郑七 63  82  74  219 73.00
5 95004 李四 56  72  85  213 71.00
7 95010 陈十 63  60  83  206 68.67
8 95009 冯九 90  56  56  202 67.33
9 95002 钱二 66  56  76  198 66.00
10 95008 王八 58  60  73  191 63.67
=====================================

本节Python集合与字典的知识就介绍到这里,下一节我们继续介绍日期与时间的知识!

·END·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小雨编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
flink 1.11.2 学习笔记(3)-统计窗口window
接上节继续,通常在做数据分析时需要指定时间范围,比如:"每天凌晨1点统计前一天的订单量" 或者 "每个整点统计前24小时的总发货量"。这个统计时间段,就称为统计窗口。Flink中支持多种Window统计,今天介绍二种常见的窗口:TumbingWindow及SlidingWindow。
菩提树下的杨过
2020/12/22
1.4K0
flink 1.11.2 学习笔记(3)-统计窗口window
Flink异步之矛-锋利的Async I/O
在Flink 流处理过程中,经常需要和外部系统进行交互,用维度表补全事实表中的字段。
王知无-import_bigdata
2020/02/10
1.2K0
flink 1.11.2 学习笔记(4)-状态示例
接上节继续,今天学习Flink中状态的使用。数据处理的过程中,对当前数据的处理,有时候要依赖前一条数据的值,这种被称为“有状态”的计算。
菩提树下的杨过
2020/12/22
1.1K0
flink 1.11.2 学习笔记(4)-状态示例
工业互联网的现状、发展与未来(中国工业互联网研究报告)
面对不断提升的成本、运营压力,以及回报率走低的趋势,老牌工业企业“通用电气”在2012年提出了“工业互联网(Industrial Internet)”的概念,随后美国五家行业龙头企业联手组建了工业互联网联盟(IIC),将这一概念推广开来。之后,除了像GE这样的制造业巨头,IBM、思科、英特尔和AT&T等IT企业也加入了该联盟。
庞九公子
2020/06/02
30.9K4
工业互联网的现状、发展与未来(中国工业互联网研究报告)
当工业互联网遇上SaaS
来源 :我思锅我在 作者:我思锅我在GN ---- 标题中“工业”在先,其次“互联网”,最后触电SaaS,顺序不能颠倒,原因与现在大家对“AI+”的理解相似,先有产业,然后“+AI”。  听不少投资人说“工业互联网”看得越久,越困惑。然而真正让我们困惑和敬畏的其实是“工业”,不是“互联网”。 从2012年末GE首次提出“工业互联网(Industrial Internet)”,到2013年德国在汉诺威展提出“工业4.0”,再到2015年中国国务院发布“中国制造2025”,工业互联网和先进制造已经在多
腾讯SaaS加速器
2020/06/09
2.5K0
六大方法彻底解决Flink Table & SQL维表Join
随着 Flink Table & SQL的发展,Flink SQL中用于进行维表Join也成为了很多场景的选择。
大数据真好玩
2021/11/16
4K0
手把手构建基于 GBase8s 的 Flink connector
本篇文章,首先会向大家阐述什么是 Flink connector 和 CDC , 然后会通过手把手的方式和大家一起构建一个简单的GBase8s的Flink connector,并完成实践项目,即通过Mysql CDC实时通过connector同步数据到GBase8s中。
麒思妙想
2021/08/12
8720
手把手构建基于 GBase8s 的 Flink connector
Flink的DataSource三部曲之二:内置connector
本文是《Flink的DataSource三部曲》系列的第二篇,上一篇《Flink的DataSource三部曲之一:直接API》学习了StreamExecutionEnvironment的API创建DataSource,今天要练习的是Flink内置的connector,即下图的红框位置,这些connector可以通过StreamExecutionEnvironment的addSource方法使用:
程序员欣宸
2020/05/26
4800
工业互联网平台 GE predix
1998年麻省理工学院首次提出物联网概念,这正是今天工业互联网的起点。最初,物联网几乎只包括射频识别技术——也就是俗称的“电子标签”,随后慢慢延伸至传感器、网络、应用平台。经过十几年光景,物联网在很大程度上仍旧像是20世纪60、70年代的计算机——在许多领域都有着出色的应用,但却是一个个“应用孤岛”。 随后 ,在二十一世纪的第一个十年里,在金融危机时期,随着经济增长的不确定性增加,工业客户开始将注意力从提高生产力转向提高利润率。大数据的概念也越来越火爆,利用大数据/IOT等新技术提升和革命传统制造业是工业客
大数据和云计算技术
2018/03/08
2.7K0
工业互联网平台 GE predix
工业互联网的价值体现——工业APP时代的到来
2017年11月,国务院印发《关于深化“互联网+先进制造业”发展工业互联网的指导意见》,明确提出到2020年培育30万个面向特定行业、特定场景的工业APP的目标任务。
广州接点智能
2019/11/01
2K0
工业互联网的价值体现——工业APP时代的到来
flink 1.11.2 学习笔记(5)-处理消息延时/乱序的三种机制
* 按时间顺序发生的数据1 -> 2,本来应该是1先发送,1先到达,但是在1发送过程中,因为网络延时之类的原因,导致1反而到达晚了,变成2先到达,也就造成所谓的接收乱序;
菩提树下的杨过
2021/09/09
1.2K0
flink 1.11.2 学习笔记(5)-处理消息延时/乱序的三种机制
Flink connecton for gbase8c
上一次发文,好像还是上一次,鸽了这么久,开始还是有一些心理负担的,但是时间长了,好像就坦然了一些,但问题终究还是要面对的,所以今天我来了。。。
麒思妙想
2022/11/11
4960
Flink connecton for gbase8c
案例| 腾讯WeMake工业互联网平台的边缘容器化实践:打造更高效的工业互联网
腾讯WeMake工业互联网平台基于强大的数据、算力、算法与连接能力,并叠加上大量的工业Know-how, 机理模型与OT技术,搭建了一套强大的工业互联网平台架构。应用和数据是企业的核心资源,如何保证应用和数据的可靠性、安全性是腾讯WeMake最关心的问题之一。出于安全考虑,多数用户强调“数据落本地”,单靠数据中心难以满足其需求。此外,随着物联网技术的发展,平台中大量的智能终端位于网络边缘,集中计算模式不能满足所有应用场景。基于以上问题,腾讯WeMake工业互联网平台选用了边缘容器打造了一套安全高效的工
腾讯云原生
2021/03/15
2.1K0
使用小程序容器技术,使工业互联网平台建设加速
随着我国新一代信息技术与制造技术的深度融合,在工业数字化、网络化、智能化转型需求的带动下,以泛在互联、全面感知、智能优化、和安全稳固为特征的工业互联网应运而生。
pak
2022/09/21
4010
Flink史上最简单双十一实时分析案例
上期带大家用StructredStreaming做了双十一实时报表分析,没看过的朋友可以看看,
Maynor
2022/05/08
7160
Flink史上最简单双十一实时分析案例
使用小程序容器技术,使工业互联网平台建设加速
2021年是“十四五”规划的开局之年,也是在经历疫情后我国经济重回发展正轨的关键之年,期间工业互联网相关政策规划密集出台。2021年3月12日,《“十四五”规划和2035年远景目标纲要》发布,该文件三提“工业互联网”,为我国在“十四五”期间工业互联网的发展指明了前进的方向;随后,工信部印发的《“十四五”信息化和工业化深度融合发展规划》《“十四五”软件和信息技术服务业发展规划》等文件也对工业互联网、工业大数据、工业软件等产业未来五年发展作出明确部署。
pak
2022/06/14
3980
物联网数据库 IoTDB —— 从协议到数据
在这个系列之前的文章里,我们介绍了Iotdb的LSM,以及Iot中的最佳实践,这次我们看看如何将mqtt和Iotdb整合起来。下面我们开始:
麒思妙想
2021/06/15
1.6K0
物联网数据库 IoTDB —— 从协议到数据
2021年大数据Flink(四十二):​​​​​​​BroadcastState
在开发过程中,如果遇到需要下发/广播配置、规则等低吞吐事件流到下游所有 task 时,就可以使用 Broadcast State。Broadcast State 是 Flink 1.5 引入的新特性。
Lansonli
2021/10/11
8410
Apache-Flink深度解析-DataStream-Connectors之Kafka
Apache Kafka是一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,LinkedIn于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka用于构建实时数据管道和流式应用程序。它具有水平扩展性、容错性、极快的速度,目前也得到了广泛的应用。
王知无-import_bigdata
2019/03/22
1.9K0
Apache-Flink深度解析-DataStream-Connectors之Kafka
全网最详细4W字Flink全面解析与实践(上)
在大数据技术栈的探索中,我们曾讨论了离线计算的Spark,而当谈到实时计算,就不得不提Flink。本文将集中讨论Flink,旨在详尽展示其核心概念,从而助力你在大数据旅程中向前迈进。
BookSea
2023/10/28
1.2K2
全网最详细4W字Flink全面解析与实践(上)
推荐阅读
相关推荐
flink 1.11.2 学习笔记(3)-统计窗口window
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 一、Set 集合的概念
    • 1. set 集合的性质
    • 2. set 集合存储的原理
    • 3. 创键 set 集合的方法
    • 4.遍历 set 集合的方法
  • 二、set 集合常用方法
    • 1. 不可以使用加法运算和乘法运算符
    • 2. 赋值运算符
    • 3. 返回集合中元素的长度
    • 4. 判断是否包含元素
    • 5. 排序和反转
    • 6. 添加元素
    • 7. 删除元素
    • 8. 数值元素计算(max,min,sum)
    • 9. set 集合逻辑运算
    • 10. 类型转换
  • 三、set 集合综合案例
  • 四、字典的概念
    • 1. 概念:
    • 2. 注意事项:
  • 五、字典创建和初始化
    • 1. 字典的创建
    • 2. 删除字典的元素
  • 六、字典元素的遍历和访问
    • 1. 字典元素的访问
    • 2. 字典元素的遍历
  • 七、字典的常用方法
    • 1. 合并与多次打印输出
    • 2. 复制操作
    • 3. 其它常用操作
  • 八、字典的案例演示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档