【PyTorch入门】编程杂谈·1(文件、字典结构、字符串统计、结果保存)

news/2024/9/27 21:20:38 标签: pytorch, 人工智能, python

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀PyTorch入门宝典_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 前言

2. 编程杂谈

2.1 文件打开

2.2 文件读取

python%E4%B8%AD%E5%AD%97%E5%85%B8%E7%BB%93%E6%9E%84%E7%9A%84%E8%AF%BB%E5%8F%96%2F%E8%BE%93%E5%87%BA-toc" style="margin-left:40px;">2.3 python中字典结构的读取/输出

2.3.1 全部字典数据输出:

2.3.2 遍历字典并处理列表

2.4 字符串个数统计

2.5 结果保存

3. 总结


1. 前言

本专栏【PyTorch入门】可供于入门PyTorch小白阅读使用。本专栏中的【编程杂谈】系列,专门收录猫猫在利用PyTorch写程序时遇到的和PyTorch没有产生直接关系,但是python编程本身有关系小知识点或者编程思想,希望可以帮助到大家,同时也作为猫猫自己的编程笔记本。

2. 编程杂谈

2.1 文件打开

以读形式打开:

python">with open('文件地址', 'r', encoding='utf-8') as 为文件取得变量名:

例如:

python">with open('D:\projects\pythonProject\ChineseNLP\contents.json', 'r', encoding='utf-8') as fcc_file:

以写形式打开:

python">with open('文件地址', 'w', encoding='utf-8') as 为文件取得变量名:

2.2 文件读取

json格式文件读取:

json.load()

python">json_dict = json.load(fcc_file)

完整代码:

python">with open('D:\projects\pythonProject\ChineseNLP\contents.json', 'r', encoding='utf-8') as fcc_file:
    json_dict = json.load(fcc_file)

读取json文件后,会将文件转化为字典结构,在python中使用 

python%E4%B8%AD%E5%AD%97%E5%85%B8%E7%BB%93%E6%9E%84%E7%9A%84%E8%AF%BB%E5%8F%96%2F%E8%BE%93%E5%87%BA">2.3 python中字典结构的读取/输出

字典结构为:

python">my_dict = {
    'name': 'Alice',
    'age': 30,
    'hobbies': ['reading', 'traveling', 'swimming'],
    'friends': {
        'best_friend': 'Bob',
        'acquaintances': ['Charlie', 'David']
    }
}

2.3.1 全部字典数据输出:

python">my_dict = {
    'name': 'Alice',
    'age': 30,
    'hobbies': ['reading', 'traveling', 'swimming'],
    'friends': {
        'best_friend': 'Bob',
        'acquaintances': ['Charlie', 'David']
    }
}

print(my_dict)

输出:

python">{
    'name': 'Alice',
    'age': 30,
    'hobbies': ['reading', 'traveling', 'swimming'],
    'friends': {
        'best_friend': 'Bob',
        'acquaintances': ['Charlie', 'David']
    }
}

2.3.2 遍历字典并处理列表

下面情况都是字典里面包含

要输出包含列表的字典,我们可以通过循环遍历字典,检查每个值的类型:

python">for key, value in my_dict.items():
    if isinstance(value, list):
        print(f"{key}:")
        for item in value:
            print(f"  - {item}")
    elif isinstance(value, dict):
        print(f"{key}:")
        for sub_key, sub_value in value.items():
            if isinstance(sub_value, list):
                print(f"  {sub_key}:")
                for item in sub_value:
                    print(f"    - {item}")
            else:
                print(f"  {sub_key}: {sub_value}")
    else:
        print(f"{key}: {value}")

输出

python">name: Alice
age: 30
hobbies:
  - reading
  - traveling
  - swimming
friends:
  best_friend: Bob
  acquaintances:
    - Charlie
    - David

字典结构的遍历方式:

python">for key, value in my_dict.items():

item是字典中的一个键值对,利用items拿出字典结构中所有的键值对

列表结构的遍历方式:

python"> for item in value:

value是一个list列表结构

2.4 字符串个数统计

需求:有如下字符串,想要统计各个字符串出现的次数

医疗报告
医疗报告
医疗报告
医疗报告
医疗报告
医疗报告
疾病治疗
疾病治疗
健康食品
疾病治疗
疾病治疗
菜谱
菜谱

代码如下:

利用Python 的 collections.Counter来实现字符串个数统计

python">from collections import Counter
count = Counter(strings)

输出结构:

Counter输出结构为字典结构:{key,frequency}

因此输出代码为:

python">for item, frequency in count.items():
    print(f"{item}: {frequency}")

对结果排序:

python"># 对计数结果按出现次数排序(降序)
sorted_countResult = countResult.most_common()

排序结果:列表类型 

2.5 结果保存

方法一:

对于一堆string去保存可以采用 列表+append 方法存储在变量中

python"># 初始化一个空列表
tags = []
tags.append(item)  # 将 item 添加到列表中

方法二:

打开一个新文件,利用write方法写入文件中

python">import json

with open('D:\\projects\\pythonProject\\ChineseNLP\\contents.json', 'r', encoding='utf-8') as file:
    jsonResult = json.load(file)

with open('tags.txt', 'w', encoding='utf-8') as tag_file:
    for key, value in jsonResult.items():
        if isinstance(value, dict):
            for item_key, item_value in value.items():
                if item_key == 'tags':
                    if isinstance(item_value, list):
                        for item in item_value:
                            tag_file.write(f"{item}\n")  # 每个 item 单独写入一行

3. 总结

如果想要学习更多pyTorch/python编程的知识,大家可以点个关注并订阅,持续学习、天天进步

你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~


http://www.niftyadmin.cn/n/5679576.html

相关文章

uni-app运行到 Android 真机和Android studio模拟器

文章目录 1、运行到Android 真机2、运行到Android studio模拟器2.1、运行到Android studio模拟器Android studio的安装步骤2.2、安装android SDK2.3、新增虚拟设备2.4、项目运行 3、安装报错3.1、安卓真机调试提示检测不到手机【解决办法】3.2、Android Studio中缺少System Ima…

新能源汽车与燃油汽车的未来:发展趋势与价格走势分析

1. 引言:汽车行业的变革风口 随着全球对环保和可持续发展的重视,汽车行业正面临一场前所未有的技术变革。新能源汽车(NEV)的崛起,特别是电动汽车(EV)的快速发展,正在逐渐取代传统燃…

DRF实操学习——收货地址的设计

DRF实操学习——收货地址的设计 1.行政区划表的设计2. 行政区划表接口演示1.返回所有的省份2. 查询指定上级行政区划的所有子区划,以及展示自身区划 3.行政区划表接口重写补充:前端请求逻辑4. 优化5.收货地址的设计6. 收货地址表接口重写7.优化1. 优化返…

Springboot集成MongoDb快速入门

1. 什么是MongoDB 1.1. 基本概念 MongoDB是一个基于分布式文件存储 [1] 的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数…

(11)(2.1.2) DShot ESCs(四)

文章目录 前言 6 混合ESC协议 7 IOMCU DShot限制 8 参数说明 前言 DShot 是一种数字 ESC 协议,它允许快速、高分辨率的数字通信,可以改善飞行器控制,这在多旋翼和 quadplane 应用中特别有用。 6 混合ESC协议 虽然 ArduPilot 自动驾驶仪…

Pencils Protocol上线 Vaults 产品,为 $DAPP 深入赋能

Pencils Protocol是Scroll生态一站式综合收益平台,该平台以DeFi功能作为抓手,基于Farming、Vaults、Auction等功能不断向LRT、LaunchPad、AI、FHE、RWA等领域深入的拓展。 近期Pencils Protocol生态不断迎来重磅进展,一个是$DAPP通证先后在To…

Android 去掉SIM卡插拔出现的重启弹窗提示

调试过程中发现, 插入SIM卡会出现弹窗:SIM ADD: Restart your device to access the mobilenetwork. 拔掉SIM卡也会出现弹窗:SIM REMOVE: Restart your device to access the mobilenetwork. 分析下这块的实现,然后准备去掉&…

使用API有效率地管理Dynadot域名,设置域名服务器(NS)

前言 Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮箱&…