Python笔记
一、排序函数Python的两个排序函数:
sort() 和 sorted(),其中前者是类成员函数,后者是Python语言的内置函数;两者的返回值不同。它们都包含 key 和 reverse 两个参数,key 参数定义了排序规则,reverse 参数定义排序方式(正序-False 或者 逆序-True),默认情况下 reverse = False。
二、对象列表
1、创建类
class A:
def __init__(self):
self.sttr1 = 1
self.sttr2 = '2'
self.sttr3 = 3
默认属性要记得写 def __init__(self)
,访问对象的所有属性 __dict__
2、创建对象列表:
list = []
for i in range(0,5):
a = A()
list.append(a)
3、类对象的自定义排序
#定义类
class Cust:
def __init__(self):
self.id = 123
self.receiving_time = None #下单时间
self.receiving_seconds = 123
self.order_time = 123
self.order_date = 123 #预约日期
#创建类列表
#初始化
a = []
for i in range(1,5):
b = Cust()
a.append(b)
#添加对象
c = Cust()
c.id = 111111
c.receiving_seconds = 456
c.receiving_time = 123
a[3] = c
d = Cust()
d.id = 565
d.receiving_seconds = 44
d.receiving_time = 50
a[0] = d
e = Cust()
e.id = 6
e.receiving_seconds = 854
e.receiving_time = 720
a[2] = e
#排序前:
for i in range(0,len(a)):
print(a[i].__dict__)
#按id进行排序后:
print("排序后:")
result = sorted(a,key = lambda x:x.id,reverse=False)
#或者
a.sort(key=lambda x:x.receiving_seconds,reverse=False)
for i in a:
print(i.__dict__)
for i in result:
print(i.__dict__)
输出结果:
三、对象字典
1、字典排序
from functools import cmp_to_key
kids = [
{'name': 'A', 'score': 99, 'age': 12},
{'name': 'D', 'score': 75, 'age': 12},
{'name': 'C', 'score': 88, 'age': 15}
]
print(kids)
result = sorted(kids,key = lambda x : x['name'])
print(result)
2、创建对象字典
#创建类
class Cust:
def __init__(self):
self.id = 123
self.receiving_time = None #下单时间
self.receiving_seconds = 123
self.order_time = 123
self.order_date = 123 #预约日期
#创建字典
dict1 = {}
#创建对象列表
#初始化
a = []
for i in range(1,5):
b = Cust()
a.append(b)
#添加对象
c = Cust()
c.id = 111111
c.receiving_seconds = 456
c.receiving_time = 123
a[3] = c
d = Cust()
d.id = 565
d.receiving_seconds = 44
d.receiving_time = 50
a[0] = d
e = Cust()
e.id = 6
e.receiving_seconds = 854
e.receiving_time = 720
a[2] = e
#list -> 对象dict
for i in range(0,len(a)):
dict1[i] = a[i]
for key,value in dict1.items():
print(key,value.__dict__)
#对 对象dict 自定义排序
dict1 = {}
for i in range(0,len(a)):
dict1[i] = a[i]
for key,value in dict1.items():
print(key,value.__dict__)
result = dict(sorted(dict1.items(),key = lambda dict1:dict1[1].receiving_seconds,reverse = False))
print("排序后:")
for key,value in result.items():
print(key)
结果:
四、CSV的读写
1、csv写入
def write_csv(path, data_row):
# with open(path,'a+') as f:
f = open(path,'a+')
csv_write = csv.writer(f)
csv_write.writerow(data_row)
path = "file_name.csv"
data_row = ["1","2"]
write_csv(path, data_row)
不同方式:
w:以写方式打开,
a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+:以读写模式打开
w+:以读写模式打开 (参见 w )
a+:以读写模式打开 (参见 a )
rb:以二进制读模式打开
wb:以二进制写模式打开 (参见 w )
ab:以二进制追加模式打开 (参见 a )
rb+:以二进制读写模式打开 (参见 r+ )
wb+:以二进制读写模式打开 (参见 w+ )
ab+:以二进制读写模式打开 (参见 a+ )
2、csv的读取
def read_csv(path):
with open(path,'r',encoding='utf-8') as f: #按行读取csv文件 并存入list中
reader = csv.reader(f)
csv_list = []
for row in reader:
csv_list.append(row)
path = "./file_name.csv"
write_csv(path)