Chapter 9 :Dictionaries (Assignment)

本文介绍了一个Python脚本,该脚本可以读取指定文件中的邮件地址,并统计出现频率最高的邮件地址。

这里写图片描述

name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
lst2=list()
lst=list()
handle = open(name)
for line in handle:
    line=line.rstrip()
    if not line.startswith('From '):continue
    lst=line.split()
    lst2.append(lst[1])
words=dict()
for word in lst2:
    words[word]=words.get(word,0)+1

bignum=None
bigcount=None
for num,count in words.items():
    if bigcount is None or bigcount<count:
        bigcount=count
        bignum=num

print bignum,bigcount

可以把这次的代码看成两部分组成:
part 1:

name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
lst2=list()
lst=list()
handle = open(name)
for line in handle:
    line=line.rstrip()
    if not line.startswith('From '):continue
    lst=line.split()
    lst2.append(lst[1])

一开始提前邮箱地址的代码和上次的没什么区别,唯一要注意的是,上次偷懒所以每次循环都打印一次找到的邮箱地址,而没有真正意义上把所有mail存入到一个list中。 所以这次新建一个lst2,调用append()方法存入所有邮箱。

顺便提一下这里的lst[1]应该是String类型的。

part2:

words=dict()
for word in lst2:
    words[word]=words.get(word,0)+1

bignum=None
bigcount=None
for num,count in words.items():
    if bigcount is None or bigcount<count:
        bigcount=count
        bignum=num

print bignum,bigcount

这里就是在dict中去寻找value最大的item,然后将它的key和value都输出.

注意:1、Python中赋初值一般是None而不是0
2、words.items()而不是words.item()

最后结果:
这里写图片描述

这是一个基于AI视觉识别与3D引擎技术打造的沉浸式交互圣诞装置。 简单来说,它是一棵通过网页浏览器运行的数字智慧圣诞树,你可以用真实的肢体动作来操控它的形态,并将自己的回忆照片融入其中。 1. 核心技术组成 这个作品是由三个尖端技术模块组成的: Three.js 3D引擎:负责渲染整棵圣诞树、动态落雪、五彩挂灯和树顶星。它创建了一个具备光影和深度感的虚拟3D空间。 MediaPipe AI手势识别:调用电脑摄像头,实时识别手部的21个关键点。它能读懂你的手势,如握拳、张开或捏合。 GSAP动画系统:负责处理粒子散开与聚合时的平滑过渡,让成百上千个物体在运动时保持顺滑。 2. 它的主要作用与功能 交互式情感表达: 回忆挂载:你可以上传本地照片,这些照片会像装饰品一样挂在树上,或者像星云一样环绕在树周围。 魔法操控:握拳时粒子迅速聚拢,构成一棵挺拔的圣诞树;张开手掌时,树会瞬间炸裂成星光和雪花,照片随之起舞;捏合手指时视线会拉近,让你特写观察某一张选中的照片。 节日氛围装饰: 在白色背景下,这棵树呈现出一种现代艺术感。600片雪花在3D空间里缓缓飘落,提供视觉深度。树上的彩色粒子和白色星灯会周期性地呼吸闪烁,模拟真实灯串的效果。 3. 如何使用 启动:运行代码后,允许浏览器开启摄像头。 装扮:点击上传照片按钮,选择温馨合照。 互动:对着摄像头挥动手掌可以旋转圣诞树;五指张开让照片和树化作满天星辰;攥紧拳头让它们重新变回挺拔的树。 4. 适用场景 个人纪念:作为一个独特的数字相册,在节日陪伴自己。 浪漫惊喜:录制一段操作手势让照片绽放的视频发给朋友。 技术展示:作为WebGL与AI结合的案例,展示前端开发的潜力。
【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)内容概要:本文提出了一种计及连锁故障传播路径的电力系统N-k多阶段双层优化及故障场景筛选模型,并提供了基于Matlab的代码实现。该模型旨在应对复杂电力系统中可能发生的N-k故障(即多个元件相继失效),通过构建双层优化框架,上层优化系统运行策略,下层模拟故障传播过程,从而实现对关键故障场景的有效识别与筛选。研究结合多阶段动态特性,充分考虑故障的时序演化与连锁反应机制,提升了电力系统安全性评估的准确性与实用性。此外,模型具备良好的通用性与可扩展性,适用于大规模电网的风险评估与预防控制。; 适合人群:电力系统、能源互联网及相关领域的高校研究生、科研人员以及从事电网安全分析、风险评估的工程技术人员。; 使用场景及目标:①用于电力系统连锁故障建模与风险评估;②支撑N-k故障场景的自动化筛选与关键脆弱环节识别;③为电网规划、调度运行及应急预案制定提供理论依据和技术工具;④服务于高水平学术论文复现与科研项目开发。; 阅读建议:建议读者结合Matlab代码深入理解模型构建细节,重点关注双层优化结构的设计逻辑、故障传播路径的建模方法以及场景削减技术的应用,建议在实际电网数据上进行测试与验证,以提升对模型性能与适用边界的认知。
<think> 我们正在处理一个关于Ubuntu系统中软件包依赖关系的问题。用户提到在安装软件时遇到了错误,特别是aspell, aspell-en, hunspell-en-us等软件包因为缺少dictionaries-common而无法安装。错误信息中还包括了dpkg返回错误代码(1)的情况。 根据引用[1]中提供的错误信息,我们可以看到在安装过程中多个软件包(包括dictionaries-common)处理时出现了错误。通常,这类问题可能是由于软件包依赖关系未满足或者软件包配置失败引起的。 解决方案通常包括: 1. 更新软件包列表并尝试修复依赖关系。 2. 清除可能损坏的软件包配置。 3. 手动安装缺失的依赖(在本例中为dictionaries-common)。 4. 强制安装或重新配置有问题的软件包。 步骤分解: 第一步:更新软件包列表并尝试修复损坏的依赖 ```bash sudo apt update sudo apt -f install ``` `apt -f install`会尝试修复依赖关系,并且安装任何缺失的依赖。 第二步:如果上述步骤不能解决问题,尝试清除dpkg的配置并重新配置所有软件包 ```bash sudo dpkg --configure -a sudo apt install -f ``` 第三步:如果dictionaries-common确实缺失,尝试单独安装它 ```bash sudo apt install dictionaries-common ``` 如果这一步成功,那么后续可以继续安装其他软件包。 第四步:如果单独安装dictionaries-common也失败,可能需要检查该软件包的安装脚本是否出错。有时,软件包在配置阶段需要用户交互(如选择字典等),而在非交互式环境中会失败。我们可以尝试设置环境变量跳过交互: ```bash sudo DEBIAN_FRONTEND=noninteractive apt install -y dictionaries-common ``` 第五步:如果以上步骤都失败,可以考虑清除软件包缓存并重新安装 ```bash sudo apt clean sudo apt autoclean sudo apt update sudo apt install --reinstall dictionaries-common ``` 第六步:如果问题依旧,可能是由于软件包本身损坏,可以尝试从其他镜像源下载并手动安装。但这种情况较少见。 最后,在解决了dictionaries-common的问题后,再尝试安装aspell, aspell-en, hunspell-en-us等软件包。 注意:在执行这些操作时,请确保你有足够的权限(使用sudo)并且系统处于稳定状态(没有其他软件包操作正在进行)。 根据用户提供的引用信息,我们没有直接看到dictionaries-common的具体错误,但根据经验,上述步骤通常可以解决这类依赖问题。 如果用户在执行过程中遇到其他错误,可以根据错误信息进一步调整解决方案。 相关问题: 1. 如何避免在Ubuntu中遇到软件包依赖问题? 2. 除了apt,还有哪些工具可以解决Ubuntu的依赖关系? 3. 在Ubuntu中如何彻底卸载一个软件包及其依赖? </think> ### 解决软件包依赖问题 遇到`aspell`, `aspell-en`, `hunspell-en-us`因缺少`dictionaries-common`导致安装失败的问题,可尝试以下解决方案: --- #### 1. **修复依赖关系** 首先尝试自动修复依赖链: ```bash sudo apt --fix-broken install ``` 该命令会尝试自动修复损坏的依赖关系,包括安装缺失的`dictionaries-common`[^1]。 --- #### 2. **强制重新配置软件包** 若自动修复无效,手动重置软件包配置: ```bash sudo dpkg --configure -a # 完成未完成的配置 sudo apt install -f # 再次修复依赖 ``` --- #### 3. **手动安装缺失包** 直接安装缺失的`dictionaries-common`: ```bash sudo apt install dictionaries-common ``` 成功后再次安装目标包: ```bash sudo apt install aspell aspell-en hunspell-en-us ``` --- #### 4. **清除损坏的包缓存** 若存在部分安装失败的残留文件: ```bash sudo apt clean # 清除下载缓存 sudo apt autoclean # 清除旧版本缓存 sudo apt update # 刷新源列表 ``` 然后重试安装[^4]。 --- #### 5. **检查系统完整性** 排除系统文件损坏: ```bash sudo dpkg --audit # 审查损坏包 sudo apt install --reinstall dictionaries-common # 强制重装 ``` > **注意**:若遇到交互式配置界面(如字典选择),使用以下命令跳过交互: > ```bash > sudo DEBIAN_FRONTEND=noninteractive apt install dictionaries-common > ``` --- ### 根本原因分析 此问题通常由以下情况引发: 1. 软件源更新中断导致元数据损坏 2. 安装脚本依赖缺失(如`dictionaries-common`维护字典数据库) 3. 软件包版本冲突(常见于混合使用不同Ubuntu版本的源)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值