这是一个用于随机抽取事故安全事故案例并显示出三个关键词的小脚本。将每个案例放入map,键是事故名称,值是事故中出现的关键词。所有的案例都放入一个列表中,随机抽取一个案例,按顺序打印关键词,通过向上拉查看对应的信息,逐个增加关键词,因为最底下显示的是第一个关键词,所以打印时,需要调整关键词的顺序。python只用了很少的代码就可以高效地完成任务,令人惊叹。
import random
list_cases = [
{"某公司6#脱硫站溶剂罐'9.15'物理爆炸事故": ["溶剂", "超压", "氮封", "自力式调节阀", "脱硫", "联动试车", "掀翻",
"跌落地面", "盲板", "承包商", "重伤", "仪表调校", "崩开", "紧急泄压阀",
"安全隐患", "工艺流程", "安全风险", "设计压力", "报警设定"]},
{"某公司'3.30'着火事故": ["裂解炉", "突沸", "急冷换热器", "HB-103", "投料", "电仪联锁校验", "操作指令", "串级自动",
"2#裂解", "满量程", "进料流量", "汽包", "汽包上水", "预案紧急处理", "干扰报警",
"筒体撕裂", "裂解气泄漏", "指示失真"]},
{"某公司'8.10'高处坠落事故": ["承包商", "攀爬", "脚手架", "北京燕华", "违规", "框架平台坠落", "头部受伤", "E-206",
"距地面20m", "烯烃部", "气相聚丙烯", "头部受伤", "拆封头", "侧面", "灭火器箱", "倾倒",
"一步一挂", "借力", "安全意思淡薄"]},
{"某公司'5.29'爆炸事故": ["盲板作业", "乙烯装置", "违章指挥", "裂解炉", "7#裂解炉", "开工过程", "保运人员",
"违章指挥操作", "拆开法兰", "进料线开关", "倒盲", "法兰大量喷出", "界区进料", "引发爆燃",
"炉底明火", "未签发", "现场确认", "轻石脑油", "1.3MPa", "闪爆"]},
{"某公司'5.19'机械伤害事故": ["传送线", "夜班", "辊轮", "涂敷", "进管", "违章", "行进的", "钢管管端处", "补贴",
"牛皮纸", "破损", "中频加热", "主操岗", "防护罩", "卷入", "安全缺陷", "结合处"]},
{"某公司'4.9'火灾事故": ["芳烃厂", "泄漏点", "氢气", "2#重整", "碱洗塔", "突然泄漏", "撕裂面", "测厚", "正对面",
"减薄", "3.37mm", "18mm", "长约2m", "启裂处", "设计缺陷", "分配器", "高速冲刷",
"微量氯化氢", "塔壁", "承压能力", "静电起火"]},
{"某公司'1.12'爆燃事故": ["氧含量", "可燃气报警", "回收系统", "49.8立方米", "中间罐", "压力高报警", "现场确认",
"推出", "现场明火熄灭", "高速泄漏", "爆燃", "静电", "火焰烘烤", "暴聚", "长期超标",
"过氧化自聚物", "超压泄漏", "物料失控", "反应加剧", "储罐"]},
{"某公司炼油部'1.9'火灾事故": ["气分", "驱动端", "青烟", "炼油部", "加速度", "精丙烯", "中段回流泵", "切换机泵",
"停运", "泵出口阀", "未关严", "微漏", "机械密封", "气动阀", "失效", "轴承摩擦",
"火花", "止回阀失效"]},
{"某公司承包商'3.26'高处坠落事故": ["炼油二部", "彩钢板", "临时电箱", "承包商", "加氢裂化", "更换", "生命绳",
"安全带", "未固定", "K3101/C", "北侧临时脚手架", "隔离平台", "坠落高度11.98m",
"电机顶部", "踩翻"]},
{"某公司'3.8'一氧化碳中毒事故": ["乙炔", "电石炉", "13人", "一氧化碳", "中毒", "晕倒", "救援人员", "防护不当",
"夹紧装置", "无法闭合", "净化风机", "检修作业", "电动盲板阀"]},
{"某公司'3.12'爆炸事故": ["联锁", "2018", "自启", "单向阀", "低报警", "快关阀门", "循环氢压缩机", "进料泵",
"泵出口阀", "润滑油压", "高压瓦斯", "高温高压介质", "反应系统", "缓冲罐"]},
{"某公司'4.16'坍塌事故": ["渣油加氢", "受限空间", "滑落", "R1330", "卸剂", "氧含量", "松散", "干冰", "不规则坑洞",
"板结", "通讯器材", "视频监控", "卷扬机", "背部", "医院"]},
{"某公司'11.3'物体打击事故": ["动力站", "汽包", "跌落", "正邦公司", "人孔", "3#炉汽包", "锁紧装置", "内扣式",
"扳手", "监护人", "给水", "负压", "给水放空阀", "打击伤害", "9米", "承包商",
"铁锤敲击"]},
{"某公司丁二烯装置'10.28'火灾事故": ["甲苯", "换热效果差", "浸泡清洗", "丁二烯", "溶剂冷却器", "溶剂", "气液两相",
"EA-1126", "胶管", "临时接液桶", "快速喷出", "排放阀"]},
{"某公司重整装置'10.25'泄漏着火事故": ["重整", "预加氢", "循环氢压缩机", "监护人", "入口过滤器", "C-101A",
"预防性检修", "第四颗螺栓", "铁桶", "滴液", "静电", "非防爆工具", "退守稳态",
"切断进料", "泄漏着火", "作业许可证", "物料喷出", "拆卸作业", "异响",
"紧急泄压", "错拆", "泄漏", "火花", "充氮保护"]}]
random_case = random.sample(list_cases, 1)[0] # 从所有的案例中抽出一个,random_case是一个字典类型
print("事故名称: " + list(random_case.keys())[0] + "\n" * 18) # list(random_case.keys())[0] 把键放入列表显示出名称
keywords_number = 3
adjust_the_order = 3
#方法1
content = random.sample(list(random_case.values())[0], keywords_number) # list(random_case.values())[0]把值放入列表显示出关键词
for index,keyword in enumerate(content) :
print(f"关键词{index+adjust_the_order}: {keyword}"+"\n"*18)
adjust_the_order-= 2
# randomList=[i for i in range(11,46)]
# random.shuffle(randomList)
# print(randomList)
'''
方法2:
for k, v in random_case.items():
random.shuffle(v)
for index, keyword in enumerate(v[:3]):
print(f"关键词{index + adjust_the_order}: {keyword}" + "\n" * 30)
adjust_the_order -= 2
'''
打印显示的文本如下:
事故名称: 某公司'3.30'着火事故
关键词3: 2#裂解
关键词2: 汽包
关键词1: HB-103