目录
- 读取和写入CSV文件
- 在列表,字典,集合中根据条件筛选数据
- 列表
- 字典
- 集合
- 为元组中的每个元素命名
- 方法1:使用一系列的数值常量
- 方法2:使用枚举类
- 方法3:使用标准库中collections.namedtuple代替内置tuple
读取和写入CSV文件
读取文件中学生成绩高于60的数据,并写入新的文件中
import csv
# 写入文件
with open("test.csv", 'w', encoding='utf-8') as wf:
writes = csv.writer(wf)
writes.writerow(["id", "name", "age", "score"])
writes.writerow([1, "李四", 14, 45.4])
writes.writerow([2, "张三", 18, 61])
writes.writerow([3, "王二", 35, 30.1])
writes.writerow([4, "麻子", 44, 88])
# 读取文件中学生成绩高于60的数据,并写入新的文件中
with open("test.csv", 'r', encoding='utf-8') as rf:
# 获取读取的句柄
reader = csv.reader(rf)
# 通过next()获取头部
headers = next(reader)
# 写入新的文件中
with open("newFile.csv", 'w', encoding='utf-8') as wf:
# 获取写入句柄
writes = csv.writer(wf)
# 写入刚才获取的头部
writes.writerow(headers)
# 读取每一行数据
for student in reader:
# 获取成绩的列
score = student[-1]
# 判断成绩的列存在且大于等于60
if score and float(score) >= 60:
# 写入新文件中
writes.writerow(student)
在列表,字典,集合中根据条件筛选数据
列表
from random import randint
l = [randint(-10, 10) for i in range(10)]
# 方法1-列表解析
m = [x for x in l if x >= 0] # [8, 7, 10, 1, 4]
# 方法2-filter()方法
n = filter(lambda x: x >= 0, l)
print(list(n))
字典
# 字典
d = {"student%d" % d: randint(50, 100) for d in range(21)}
# 方法1-字典解析
dc = {k: v for k, v in d.items() if v > 90}
print(dc)
# 方法2-filter()方法
dn = filter(lambda x: x[1] > 90, d.items())
print(dict(dn))
集合
# 集合
s = {randint(-10, 10) for x in range(10)}
# 方法1-集合解析
sm = {x for x in s if x >= 0}
print(sm)
# 方法2-使用filter()方法
sd = filter(lambda x: x >= 0, sm)
print(set(sd))
为元组中的每个元素命名
方法1:使用一系列的数值常量
# 为元组中每一个元素命名
# 方法1:使用一系列的数值常量
NAME, AGE, SEXE, EMAIL = range(4)
stu = ("李四", 16, "man", "pyj.moon@gmail.com")
def get_func(student):
# 通过常量命名
if student[AGE] < 18:
print(student[0] + "的年龄小于18")
if student[SEXE] == "male":
print(student[0] + "的性别为:male")
get_func(student=stu)
方法2:使用枚举类
# 导入int型的枚举类
from enum import IntEnum
class StuentEnum(IntEnum):
NAME = 0
AGE = 1
SEXE = 2
EMAIL = 3
print(stu[StuentEnum.NAME]) # 李四
print(isinstance(StuentEnum.NAME, int)) # True StuentEnum.NAME是int的实例
方法3:使用标准库中collections.namedtuple代替内置tuple
# 方法3:使用标准库中collections.namedtuple代替内置tuple
from collections import namedtuple
# 第一个参数,命名元组的名字;第二个参数,每个元素的名字
s1 = namedtuple("StudentTest", ["name", "age", "sex", "email"])
# 使用命名元组创建一个元组
s2 = s1("李四", 16, "man", "pyj.moon@gmail.com")
print(s2)
# 使用命名元组的方式,访问字段
print(s2.name) # 李四
目录
- 读取和写入CSV文件
- 在列表,字典,集合中根据条件筛选数据
- 列表
- 字典
- 集合
- 为元组中的每个元素命名
- 方法1:使用一系列的数值常量
- 方法2:使用枚举类
- 方法3:使用标准库中collections.namedtuple代替内置tuple
读取和写入CSV文件
读取文件中学生成绩高于60的数据,并写入新的文件中
import csv
# 写入文件
with open("test.csv", 'w', encoding='utf-8') as wf:
writes = csv.writer(wf)
writes.writerow(["id", "name", "age", "score"])
writes.writerow([1, "李四", 14, 45.4])
writes.writerow([2, "张三", 18, 61])
writes.writerow([3, "王二", 35, 30.1])
writes.writerow([4, "麻子", 44, 88])
# 读取文件中学生成绩高于60的数据,并写入新的文件中
with open("test.csv", 'r', encoding='utf-8') as rf:
# 获取读取的句柄
reader = csv.reader(rf)
# 通过next()获取头部
headers = next(reader)
# 写入新的文件中
with open("newFile.csv", 'w', encoding='utf-8') as wf:
# 获取写入句柄
writes = csv.writer(wf)
# 写入刚才获取的头部
writes.writerow(headers)
# 读取每一行数据
for student in reader:
# 获取成绩的列
score = student[-1]
# 判断成绩的列存在且大于等于60
if score and float(score) >= 60:
# 写入新文件中
writes.writerow(student)
在列表,字典,集合中根据条件筛选数据
列表
from random import randint
l = [randint(-10, 10) for i in range(10)]
# 方法1-列表解析
m = [x for x in l if x >= 0] # [8, 7, 10, 1, 4]
# 方法2-filter()方法
n = filter(lambda x: x >= 0, l)
print(list(n))
字典
# 字典
d = {"student%d" % d: randint(50, 100) for d in range(21)}
# 方法1-字典解析
dc = {k: v for k, v in d.items() if v > 90}
print(dc)
# 方法2-filter()方法
dn = filter(lambda x: x[1] > 90, d.items())
print(dict(dn))
集合
# 集合
s = {randint(-10, 10) for x in range(10)}
# 方法1-集合解析
sm = {x for x in s if x >= 0}
print(sm)
# 方法2-使用filter()方法
sd = filter(lambda x: x >= 0, sm)
print(set(sd))
为元组中的每个元素命名
方法1:使用一系列的数值常量
# 为元组中每一个元素命名
# 方法1:使用一系列的数值常量
NAME, AGE, SEXE, EMAIL = range(4)
stu = ("李四", 16, "man", "pyj.moon@gmail.com")
def get_func(student):
# 通过常量命名
if student[AGE] < 18:
print(student[0] + "的年龄小于18")
if student[SEXE] == "male":
print(student[0] + "的性别为:male")
get_func(student=stu)
方法2:使用枚举类
# 导入int型的枚举类
from enum import IntEnum
class StuentEnum(IntEnum):
NAME = 0
AGE = 1
SEXE = 2
EMAIL = 3
print(stu[StuentEnum.NAME]) # 李四
print(isinstance(StuentEnum.NAME, int)) # True StuentEnum.NAME是int的实例
方法3:使用标准库中collections.namedtuple代替内置tuple
# 方法3:使用标准库中collections.namedtuple代替内置tuple
from collections import namedtuple
# 第一个参数,命名元组的名字;第二个参数,每个元素的名字
s1 = namedtuple("StudentTest", ["name", "age", "sex", "email"])
# 使用命名元组创建一个元组
s2 = s1("李四", 16, "man", "pyj.moon@gmail.com")
print(s2)
# 使用命名元组的方式,访问字段
print(s2.name) # 李四
提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
全部评论 () 最热 最新
相关文章
-
[
python进阶-python MySQL
目录准备出发MySQL 数据库安装 MySQL 驱动程序测试 MySQL Connector创建连接一、Python 创建数据库1、创建数据库2、检查数据库是否存在二、Python 创建表1、创建表2、检查表是否存在3、主键三、Python Insert Into Table1、插入表2、插入多行3、获取已插入 ID四、Python Select From1、从表中选取2、选取列3、使用 fetc
](https://blog.51cto.com/u_15221348/2884630)
MySQL
-
[
python进阶例题
python进阶hello,大家好,我是Dream上次给大家带来了python基础例题(关注我可以看到哟),这次给大家整理了一些进阶的知识点和例题,希望大家喜欢!首先和大家分享一个有意思的东西:当当当当~就是这个进度条了,我感觉老有意思了,哈哈哈这是它的代码,大家可以参考一下:import timefrom tqdm import tqdmfor i in tqdm(r
](https://blog.51cto.com/u_15492594/4968971)
python ico 下划线
-
[
python Queue进阶
创建一个“队列”对象import Queuemyqueue = Queue.Queue(maxsize = 10)Queue.Queue类即是一
](https://blog.51cto.com/u_15129547/5503841)
python 等待时间 数据
-
[
Python进阶 – 文件
目录文件目标01. 文件的概念1.1 文件的概念和作用1.2 文件的存储方式文本文件和二进制文件02. 文件的基本操作2.1 操作文件的套路2.2 操作文件的函数/方法2.3 read 方法 —— 读取文件文件指针(知道)2.4 打开文件的方式2.5 按
](https://blog.51cto.com/u_15743016/5549340)
python 开发语言 后端 打开文件 字符串
-
[
python ftplib 进阶
Python中的ftplib模块Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可
](https://blog.51cto.com/u_15129547/5580694)
python 上传 ftp服务器
-
[
python进阶资源
本文为不同阶段的Python学习者从不同角度量身定制了49个学习资源。 初学者Welcome to Python.orghttps://www.python.org/官方Python站点提供了一个开始使用Python生态系统和学习Python的好方法,包括官方文档。 Learning Python The Hard Wayhttps://learnpythonthe
](https://blog.51cto.com/u_11045899/5344415)
python python3 资源 学习 进阶
-
[
python 进阶语法
条件(判断)语句在 Python 中,条件语句又叫作判断语句,由 if、 elif和 else 3 种语句组成,其中 if 为强制语句,可以独立使用,elif 和 else 为可选语句,并且不能独立使用。判断语句配合布尔值,通过判断一条或多条语句的条件是否成立(True 或 者 False),从而决定下一步的动作,如果判断条件成立(True),则执行 if 或 elif 语句下的代码;如果判断条件
](https://blog.51cto.com/u_15450494/5208100)
python 循环与判断 文件的读写 函数与模块 正则表达式与异常处理
-
[
Python进阶 – 异常
目录异常目标01. 异常的概念02. 捕获异常2.1 简单的捕获异常语法简单异常捕获演练 —— 要求用户输入整数2.2 错误类型捕获异常类型捕获演练 —— 要求用户输入整数捕获未知错误2.3 异常捕获完整语法03. 异常的传递04.
](https://blog.51cto.com/u_15743016/5549339)
python 开发语言 后端 错误类型 抛出异常
-
[
Python进阶小结
目录一、异常TODO二、深浅拷贝2.1 拷贝2.2 浅拷贝2.3 深拷贝三、数据类型内置方法3.1.1 整型3.1.2 浮点型3.1 数字类型内置方法3.2 字符串类型内置方法3.3 列表类型内置方法3.4 元祖类型内置方法3.5 字典类型内置方法3.6 集合类型内置方法3.7 布尔类型四、数据类型分类4.1 按值个数4.2 按有序无序4.3 按可变不可变一、异常TODO万能捕捉异常公式try:
](https://blog.51cto.com/u_13804357/2708717)
Python
-
[
Python进阶—Matplotlib
Matplotlib再来一次文章目录一、基础用法二、figure图像三、设置坐标轴四、legend图例五、标注六、散点图七、直方图八、等高线图九、3D图十、sub
](https://blog.51cto.com/u_14608932/5434706)
python 计算机视觉 开发语言 Matplotlib 3d
-
[
Python进阶—Pandas
Pandas再来一次文章目录一、Series和DataFrame二、选择数据三、赋值及操
](https://blog.51cto.com/u_14608932/5976372)
python 开发语言 后端 数据 多列
-
[
Python进阶—Numpy
Numpy 再来一遍文章目录一、Numpy的属性二、创建array三、Numpy的运算四
](https://blog.51cto.com/u_14608932/5976373)
python 矩阵 机器学习 数据 最小值
-
[
python 进阶课程
数据结构、链表操作 数据结构 逻辑结构 存储结构 线性表的链式存储 单链表类构建 删除节点 获取节点 栈、队列 栈 栈模型 栈的链式栈 队列 队列的操作:入队、出队、 链式队列 二叉树、算法基础 树形结构 二叉树 二叉树实践 1 class Node: 层次遍历 算法基础 排序 # 选择排序 lin
](https://blog.51cto.com/wekenw/5158881)
套接字 链表 数据
-
[
python进阶_浅谈面向对象进阶
python进阶_浅谈面向对象进阶学了面向对象三大特性继承,多态,封装。今天我们看看面向对象的一些进阶内容,反射和一些类的内置函数。一、isinstance和issubclass class Foo: pass class Son(Foo): pass s = Son()#判断一个对象是不是这…
](https://blog.51cto.com/u_15072918/3687384)
python 面向对象 内置函数 属性值 字符串
-
[
Python语法进阶
Python进阶 一、装饰器 1. 包的概念及基本使用 闭包的概念:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。 闭包构成的条件: 存在函数的嵌套关系 内层函数引用了外层函数的临时变量 外层函数返回内层函数的引用(地址) 2 …
](https://blog.51cto.com/u_15127506/3869634)
浅拷贝 类名 python 环境变量 对象名
-
[
Python—进阶综合
01-异常 1.1 异常捕获 在调试程序时难免遇到抛出的异常,为了对集中的异常进行处理,可以使用异常捕获进行预判 try: # 尝试执行的代码 pass except 错误类型1: # 针对错误类型1,对应的代码处理 pass except (错误类型2, 错误类型3): # 针对错误类型2 和 3 …
](https://blog.51cto.com/u_15127607/4353003)
python 打开文件 当前目录 抛出异常 文件指针
-
[
python进阶2
IO编程 文件读写: with open(‘file’,‘r’,encoding=‘gbk’) as f: #读gbk编码的文件 f.read() StringIO和BytesIO : 内存读写;f.getvalue():获得写入后的内存文件内容 操作文件和目录:操作文件和目录的函数一部分在os模块 …
](https://blog.51cto.com/u_15127595/3263661)
json 序列化 子进程 字符串 当前目录
-
[
python函数进阶
函数进阶 函数执行传参时,传递的是内存地址 浅拷贝是拷贝的内存地址 深拷贝是拷贝的内存地址 函数的返回值是内存地址 def func(): data = [11, 22, 33] return data v1 = func() print(v1) # [11,22,33] 上述代码的执行过程: …
](https://blog.51cto.com/u_15127576/3375451)
老男孩学习笔记 python 内存地址 赋值 引用计数
-
[
Python学习进阶
阅读目录 一、python基础 二、python高级 三、python网络 四、python算法与数据结构 一、python基础 人生苦短,我用Python(1) 工欲善其事,必先利其器(2) python基础-变量运算符(3) python基础-分支判断语句(4) python基础-循环语句(5)
](https://blog.51cto.com/u_15127608/4592308)
python 数据结构 web服务器 面向对象 快速排序
-
[
python打开import引用的函数 python中的import函数
1.importimport引入或者叫做导入模块或者模块中的几个函数。 1)、导入模块 import 模块名 比如 import math 2)、导入某个包里或者多层包里的模块(若干个包名).模块名 比如 import p1.math import p1.p2.p3.math 3)、导入模块里的某几个函数 from 模块名 import 函数名,函数名
](https://blog.51cto.com/u_16099221/6388506)
python打开import引用的函数 包名 旧版 新版本
-
[
java 数据结构 链表 java实现链表
java实现链表一、单向链表单指针,指针指向下一个元素指定位置新增元素,如果是在头部位置,先初始化节点,将头部节点赋值给这个节点的下一位指针,如果不是头部位置,循环遍历链表找到要插入的位置,将当前节点的下一位指针指向新增节点的下一位指针,然后将新增节点赋值给当前节点的下一位指针。删除节点,循环遍历链表,找到要删除位置的元素,然后设置头部节点和头部节点的下一位,循环遍历,每一次遍历不仅要找到当前节点
](https://blog.51cto.com/u_13019/6389710)
java 数据结构 链表 算法 链表 下标越界 System
-
[
java 读文件 重复内容 java从文件中读取数据
将文件中的数据读入程序,是将程序外部的数据传入程序中,应该使用输入流——InputStream或Reader。而由于读取的是特定的数据源——文件,则可以使用输入对应的子类FileInputStream或FileReader实现。 在实际书写代码时,需要首先熟悉读取文件在程序中实现的过程。在Java语言的IO编程中,读取文件是分两个步骤:1、将文件中的数据转换为流(由系统完成,只需要创建对应的流对象
](https://blog.51cto.com/u_14405/6389737)
java 读文件 重复内容 java 数据 数组 读取文件
-
[
java pdf输出 java打印pdf文件
最近公司要求开发打标系统,在调用打印机方面花了些时间,这里做下整理。1、编译工具及环境:eclipse+jdk1.8+tomcat8.5+ireport5.0.1+jasperreports4.5.1+火狐浏览器2、调用打印机方式可分为两种:这里是用ireport设计好模板后生成jasper文件,后台调用jasper文件并传输数据生成pdf文件放到项目根目录下的temp文件夹中,这块代码就不放了,
](https://blog.51cto.com/u_13354/6390077)
java pdf输出 java调用打印机 客户端 服务器 加载
-
[
java 递归遍历json java如何递归
Java 方法递归 1 方法递归的含义 递归算法是一种直接或间接地调用自身的算法。 2 使用递归的条件 一个问题若满足以下三个条件往往都可以使用递归来解决:
](https://blog.51cto.com/u_16099210/6390722)
java 递归遍历json 递归算法 java 递归 System