代码
import csv
with open("tourist_data.csv", "r", encoding="gbk") as file:
r = csv.reader(file)
for row in r:
print(row)
file.seek(0)
r = csv.DictReader(file)
for row in r:
print(row['日期'], row['九寨沟'], row['张家界'], row['香港'], row['东部华侨城'], row['上海迪士尼'])
data_li = [
['姓名', '年龄', '出生地'],
['张三', 18, '北京'],
['李四', 19, '上海'],
['王五', 20, '武汉']
]
with open("../第四章/test.csv", "w", newline="", encoding="utf-8") as file:
w = csv.writer(file)
w.writerows(data_li)
data_dc = [
{'姓名':'张三', '年龄':18, '出生地':'北京'},
{'姓名':'李四', '年龄':19, '出生地':'上海'},
{'姓名':'王五', '年龄':20, '出生地':'武汉'}
]
with open("test1.csv", "w", newline="", encoding="utf-8") as file:
fields = ['姓名', '年龄', '出生地']
w = csv.DictWriter(file, fieldnames=fields)
w.writeheader()
w.writerows(data_dc)
import datetime
dt = datetime.datetime.now()
print(dt)
print(dt.strftime("%Y-%m-%d, %H-%M-%S"))
dt1 = dt.strptime("2025:9:15 10:21:21","%Y:%m:%d %H:%M:%S")
print(dt1)
import time
now = time.localtime(time.time())
print(now)
s = time.strftime("%Y-%m-%d, %H-%M-%S", now)
dt2 = time.strptime("2025:9:15 10:21:21", "%Y:%m:%d %H:%M:%S")
print(s)
print(dt2)
dt1 = datetime.datetime(2025, 9, 15)
dt2 = datetime.datetime(2025, 9, 15)
delta = dt1 - dt2
print(delta)
delta1 = datetime.timedelta(days=365)
dt3 = dt1 + delta1
print(dt3)
tp1 = tuple(i for i in range(1,11) if i % 2 == 0)
print(tp1)
tp2 = tuple(i for i in range(1,11) if i % 2 != 0)
print(tp2)
tp3 = tp1 + tp2
print(tp3)
tp4 = tp3*3
print(tp4)
print(tp4.count(2))
print(len(tp4))
print(max(tp4))
print(min(tp4))
print(sum(tp4))
print(sorted(tp4))
print(any(tp4))
tp4 = (0, 1, 2)
print(all(tp4))
print(any(tp4))
li = list(i for i in range(1, 11))
print(li)
li.append(11)
print(li)
li.pop(0)
print(li)
li.append(10)
li.append(11)
print(li)
li.remove(11)
print(li)
li.sort(reverse=True)
print(li)
a_list = [1, 2, 3, 4, 5, 6, 7, 8]
li = list(map(lambda x: x**3, a_list))
print(li)
print(a_list[0:6:-2])
print(a_list[-1::-1])
print(a_list[-1::-2])
import datetime
print(hash(1.5))
keys = ["姓名", "年龄", "出生地"]
values = ["张三", 18, "武汉", "北京"]
dc1 = dict(zip(keys, values))
print(dc1)
print(dc1["出生地"])
dc2 = {"性别":"男", "姓名":"李四"}
dc1.update(dc2)
print(dc1)
print(list(dc1.values()))
print(list(dc1.keys()))
del dc1["出生地"]
print(dc1)
a_set = {1, 2, 3}
b_set = {1, 2, 3, 4, 5}
print(a_set.issubset(b_set))
print(b_set.issuperset(a_set))
print(a_set == b_set)
a_set.add(4)
a_set.add(5)
print(a_set)
b_set.remove(5)
print(b_set)
print(a_set.issubset(b_set))
print(b_set.issuperset(a_set))
print(a_set == b_set)
一、时间模块操作(datetime和time模块)
1. datetime模块
- 获取当前时间:通过
datetime.datetime.now()获取当前日期时间对象,直接打印或提取年、月、日、时、分、秒等属性。
- 时间格式化:使用
strftime()方法将时间对象转换为指定格式的字符串(如"%Y-%m-%d %H:%M:%S")。
- 字符串转时间对象:使用
strptime()方法将特定格式的字符串(如"2023-10-01 12:00:00")转换为时间对象。
- 时间运算:通过
timedelta实现时间增减(如当前时间加 3 天、减 2 小时),并计算两个时间对象的差值(返回timedelta对象,包含天数、秒数等信息)。
2. time模块
- 获取时间:
time.localtime()获取本地时间的结构化对象(包含年、月、日等字段),time.time()获取时间戳(从 1970 年 1 月 1 日至今的秒数)。
- 时间格式化与转换:
time.strftime()将结构化时间对象转为字符串,time.strptime()将字符串转为结构化时间对象,time.ctime()直接将时间戳转为可读性字符串。
二、数据结构操作
1. 元组(tuple)
- 创建:通过生成器表达式(
(i for i in range(10) if i%2==0))结合tuple()创建元组。
- 操作:演示元组的拼接(
+)、重复(*)、元素计数(count())、长度(len())、最大值(max())、最小值(min())、求和(sum()),以及all()(判断所有元素为真)、any()(判断至少一个元素为真)的逻辑判断。
2. 列表(list)
- 基础操作:创建列表、
append()添加元素、pop()(按索引删除)和remove()(按值删除)、sort()排序(默认升序,reverse=True降序)。
- 批量处理:结合
map()和lambda函数对列表元素进行批量运算(如list(map(lambda x: x*2, [1,2,3]))实现元素翻倍)。
- 切片:演示正向切片(
[start:end])、反向切片([-3:-1])、步长切片([::2]取偶数索引元素)等用法。
3. 字典(dict)
- 创建:通过
zip()将两个列表(键和值)组合,再用dict()转换为字典。
- 操作:
update()更新字典(添加新键值对或修改已有键)、keys()/values()获取所有键 / 值、del删除指定键值对,以及hash()函数判断对象是否可作为字典的键(不可哈希对象如列表不能作为键)。
4. 集合(set)
- 定义:通过
{}或set()创建集合(元素唯一、无序)。
- 关系判断:
issubset()(子集)、issuperset()(超集)、==(相等性)判断两个集合的关系。
- 元素操作:
add()添加元素、remove()删除指定元素(元素不存在会报错)。