背景
现在有一批根据学号、姓名、年龄的数据,需要随机添加学生的上学时间、放学时间,并按照上学时间的正序排列输出打印到相应文件。
解答思路
将上学时间、放学时间以列表嵌套字典的形式插入到数据里面
解法1:
import random
def data_create():
time_list=[{'gotoschool':'2022-11-22 10:00','afterschool':'2022-11-22 17:00'},
{'gotoschool':'2022-11-23 10:00','afterschool':'2022-11-23 17:00'},
{'gotoschool':'2022-11-24 10:00','afterschool':'2022-11-24 17:00'}]
data_list=[{"学号":"1","姓名":"小明","年龄":"18"},
{"学号":"2","姓名":"小红","年龄":"17"},
{"学号":"3","姓名":"小绿","年龄":"16"},
{"学号":"4","姓名":"小蓝","年龄":"15"}]
filepath="D:/Desktop/data01/st.txt"
with open(filepath,'a') as f:
school_info=[]
for dict_item in data_list:
time_item=random.choice(time_list)
dict_item['gotoschool']=time_item['gotoschool']
dict_item['afterschool']=time_item['afterschool']
data_list.sort(key=lambda x:x['gotoschool'])
print(data_list)
f.write("学号,姓名,年龄,上学时间,放学时间\n")
for dict_item in data_list:
f.write("{},{},{},{},{}\n".format(
dict_item['学号'],
dict_item['姓名'],
dict_item['年龄'],
dict_item['gotoschool'],
dict_item['afterschool']
))
if __name__ == '__main__':
data_create()
解法2:
import random
def data_create(time_list,data_list,filepath):
with open(filepath,'a') as f:
for dict_item in data_list:
time_item=random.choice(time_list)
dict_item['gotoschool']=time_item['gotoschool']
dict_item['afterschool']=time_item['afterschool']
data_list.sort(key=lambda x:x['gotoschool'])
print(data_list)
f.write("学号,姓名,年龄,上学时间,放学时间\n")
f.write("学号#姓名#年龄#上学时间#放学时间\n")
for dict_item in data_list:
# f.write("{},{},{},{},{}\n".format(
f.write("{}#{}#{}#{}#{}\n".format(
dict_item['学号'],
dict_item['姓名'],
dict_item['年龄'],
dict_item['gotoschool'],
dict_item['afterschool']
))
if __name__ == '__main__':
time_list=[{'gotoschool':'2022-11-22 10:00','afterschool':'2022-11-22 17:00'},
{'gotoschool':'2022-11-23 10:00','afterschool':'2022-11-23 17:00'},
{'gotoschool':'2022-11-24 10:00','afterschool':'2022-11-24 17:00'}]
data_list=[{"学号":"1","姓名":"小明","年龄":"18"},
{"学号":"2","姓名":"小红","年龄":"17"},
{"学号":"3","姓名":"小绿","年龄":"16"},
{"学号":"4","姓名":"小蓝","年龄":"15"}]
filepath="D:/Desktop/data01/stud.txt"
data_create(time_list=time_list,data_list=data_list,filepath=filepath)