【Python】学习历程

【每天一个小知识】

将字典中的内容写入CSV文件

Python字典简介

  • 定义:
    字典是一种可变容器模型,能够存储任意类型的对象 。
    字典中的内容由键值对(key:value)组成,一般写在{}中. 我们可以定义字典如下:
    d={‘Tom’:23,’Bob’:25}

  • 性质:
    字典中的key一般都是唯一的,如果同一个key被赋值两次,则后一个值会被记住。
    而且key的数据类型不可变,如字符串、数字、元组。
    value可以取任意数据类型。

  • 操作:

(1)访问字典中的值

> In[1]:  d['Tom']
>Out[1]:  23

(2)修改字典

#向字典中增加新内容
   d['Amy']='yong'

#删除字典中的某个元素
 del  d['Tom']

#清空字典中的元素
  d.clear()



  • 将字典中的内容写入CSV文件

(1)方法一

d={'Tom'23,'Bob'25}    
with open('D:\\dic.csv','w') as _f:
    for k,v in d.items():
        _f.write("{},{}\n".format(k,v))

输出结果为:
输出结果

(2)方法二

import csv

d={'Tom'23,'Bob'25}      
with open('D:\\dic.csv','w') as _f:
    writer=csv.writer(_f)
    for k,v in d.items():
        writer.writerow([k,v])

输出结果为:
结果
Note:
我们可以看到,使用这种方法会在输出的各行内容之间产生空行。
这是因为open()函数的参数中newline=None时,输入的行不管是以’\n’,’\r’还是’\r\n’结尾,都会在返回之前转换成’\n’。
将文件内容读取出来之后,我们发现,字符串样式为 ‘Tom,23\n\nBob,25\n\n’,每行内容之间有两个换行符。因此,要想去掉空行,我们只需设置open()函数中的参数newline=”。
或者,我们可以再次读取文件,然后使用replace方法将两个换行符替换成一个,string.replace(‘\n\n’,’\n’)。同样能实现以下效果:
这里写图片描述

  • 字典中的值是列表的情况

我们希望将列表中的每个值写入不同的列中
(1)方法一
使用双层for循环

dic1={'Tom':[85,79,91],'Bob':[90,85,62]}
with open('D:\\dic.csv','w') as _f:
    for k,v in dic1.items():
        _f.write(k)
        _f.write(',')
        for item in v:
            _f.write(str(item))
            _f.write(',')
        _f.write('\n')

结果如下:
这里写图片描述
(2)方法二
使用列表推导式

with open('D:\\dic.csv','w') as _f:
    for k,v in dic1.items():
        _f.write(k)
        _f.write(',')
        list([_f.write('{},'.format(str(i)))] for i in v)
        _f.write('\n')

结果同上。

【注】欢迎批评指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值