首页 > 其他分享 >内容为字典的列表按其中一个字段排序并把时间改成几天前列表十个分一份

内容为字典的列表按其中一个字段排序并把时间改成几天前列表十个分一份

时间:2023-04-16 18:13:26浏览次数:29  
标签:22 list 标题 时间 2021 列表 排序 字典

# -*- coding: utf-8 -*-
# @Time : 2023/04/16 0016 14:02
# @Author : 张鑫
# @File : prac
# @Project : PyCharm 2022.1.4
import datetime
import json
import time
from operator import itemgetter

'''
题目要求
三个列表,列表长度为10,列表内容格式为字典,字典包含字段,
按标题去重,按时间倒序排列,时间格式为今天,一天前,n天前,最后结果按每十个一组分组
'''

list1 = [
{'标题': '黑月光拿稳BE剧本', '时间': '2021/11/22'},
{'标题': '万相之王', '时间': '2021/1/12'},
{'标题': '我有一剑', '时间': '2021/11/6'},
{'标题': '剑来', '时间': '2022/11/22'},
{'标题': '深空彼岸', '时间': '2021/6/22'},
{'标题': '相亲当天,豪门继承人拉着我领证', '时间': '2021/7/22'},
{'标题': '上门龙婿', '时间': '2021/1/22'},
{'标题': '盖世神医', '时间': '2021/3/22'},
{'标题': '修罗武神', '时间': '2021/9/22'},
{'标题': '九星霸体诀', '时间': '2021/12/22'},
]
list2 = [
{'标题': '黑月光拿稳BE剧本', '时间': '2021/11/22'},
{'标题': '龙王医婿', '时间': '2021/1/12'},
{'标题': '都市之最强狂兵(又名:都市狂枭)', '时间': '2021/11/11'},
{'标题': '混沌剑神', '时间': '2021/11/3'},
{'标题': '女总裁的全能兵王', '时间': '2021/11/9'},
{'标题': '踏星', '时间': '2021/11/6'},
{'标题': '执掌风云', '时间': '2021/6/22'},
{'标题': '斗罗大陆', '时间': '2021/9/22'},
{'标题': '斗破苍穹', '时间': '2021/7/22'},
{'标题': '镇国神婿', '时间': '2021/1/22'},
]
list3 = [
{'标题': '黑月光拿稳BE剧本', '时间': '2021/1/22'},
{'标题': '归路', '时间': '2021/3/12'},
{'标题': '校花的贴身高手', '时间': '2021/6/22'},
{'标题': '神秘复苏', '时间': '2021/5/22'},
{'标题': '宇宙职业选手', '时间': '2021/7/22'},
{'标题': '一世独尊', '时间': '2021/9/22'},
{'标题': '重回1990', '时间': '2021/4/22'},
{'标题': '无上神帝', '时间': '2021/8/22'},
{'标题': '完美世界', '时间': '2021/8/22'},
{'标题': '逆天邪神', '时间': '2023/4/16'},
]
# 列表合并
list_all = list1 + list2 + list3
print(f'列表总长:***{len(list_all)},{list_all}')
# 新建一个空列表,用来储存去重后的数据
# 储存原列表里的数据
list_none = []
# 储存值,用于判断将要插入的数据是否存在
list_quchong = []
# 遍历原来的总列表
for li in list_all:
# 通过标题去重
li1 = li['标题']
# 把格式为%Y/%m/%d的时间转变为时间戳
li2 = str(int(time.mktime(time.strptime(li['时间'], '%Y/%m/%d'))))
# 遍历用于去重的列表
if li1 not in list_quchong:
li['标题'] = li1
li['时间'] = li2
# 把标题不重复的整条数据放进去
list_none.append(li)
# 把去重字段放进去
list_quchong.append(li1)
else:
print(f'重复数据{li}')
print(f'去重后列表总长:{len(list_none)},{list_none}')
# 列表排序,itemgetter(用于排序的字段),reverse=True倒序
sort_time = sorted(list_none, key=itemgetter('时间'),reverse=True)
# 把时间戳改成几天前
today_stamp = int(time.mktime(datetime.date.today().timetuple()))
#把时间戳改成几天前
for dict1 in sort_time:
time_compare=int(today_stamp - int((dict1['时间']))) // 86400
if time_compare==0:
dict1['时间']='今天'
else:
dict1['时间'] = str(time_compare) + '天前'
print(dict1)
# 列表切割
# 每个列表长度为10
n = 10
num = 1
for i in range(0, len(sort_time), 10):
new_list = sort_time[i:i + n]
print('新列表', len(new_list), new_list)

标签:22,list,标题,时间,2021,列表,排序,字典
From: https://www.cnblogs.com/wolvies/p/17323726.html

相关文章

  • php+mysql实现微信公众号回复关键词新闻列表
    非常抱歉,我之前理解有误。如果您想要实现在公众号发送关键词,返回新闻列表的功能,可以按照以下步骤进行操作:1.创建一个数据库表,用于存储新闻的标题、链接和内容等信息。例如,可以创建一个名为news的表,包含id、title、link和content等字段。2.在公众号后台设置自定义菜单或关键词......
  • 桶排序
    1、桶排序代码这里用三版桶排序1、基于MSD思路2、老师讲的更简单的桶排序3、自己实现的桶排序(其实思路和2是一样的)/***桶排序*/@SuppressWarnings("all")publicclassBucketSort{privateBucketSort(){}publicstaticvoidsort1(Integer[]......
  • 排序算法-归并排序
    归并排序MergeSort1.MergeSort介绍MergeSort是利用归并的思想实现的排序算法,该算法采用经典的分治策略(divide-and-conquer),是一种稳定的排序算法。分治法是将问题分(divide)为一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各个答案“修补”在一起,即分而治之......
  • Java中常用排序算法及示例-冒泡排序、希尔排序、选择排序、插入排序、合并排序、基数
    场景Java中需要对数据进行排序处理,常用的排序算法以及示例进行归纳整理。注:实现1、冒泡排序冒泡排序法又称为交换排序法,原理是从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较。如此扫描一次之后就可以确保最后一个元素位于正确的顺序,接着逐步进......
  • C++冒泡排序简单讲解
    什么是冒泡排序冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢......
  • 24、桶排序
    1、MSD与Bucket2、桶排序原理......
  • 归并排序算法
    一、归并排序分治思想。  求解一个比较复杂的问题时我们通常都会把复杂的问题分解为几个简单的步骤逐一解决后对所形成的解进行处理得到最终解。分治排序算法就是利用这个思想。把一个给定数组进行拆分成最小的有顺序的单元,然后对最小单元进行排序组合成新数组的过程。二、归......
  • 排序算法-插入排序
    排序算法-插入排序1.直接插入排序InsertSort1.1InsertSort介绍InsertSort也是一种简单的内部排序算法,其是对待排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的,是一种稳定的排序算法。InserSort的基本思想是:将待排序序列看作一个有序表和一个无序表,初始时......
  • 虾皮API接口根据关键词取商品列表(商品详情,库存,排序,价格...)返回值及说明
    参数说明通用参数说明version:API版本key:调用key,测试key:test_api_keyapi_name:API类型[item_search,item_get]cache:[yes,no]默认yes,将调用缓存的数据,速度比较快result_type:[json,xml,serialize,var_export]返回数据格式,默认为jsonlang:[cn,en,ru]翻译语言,默认cn简体中......
  • 虾皮API接口根据关键词取商品列表(商品详情,库存,排序,价格...)返回值及说明
    参数说明通用参数说明version:API版本key:调用key,测试key:test_api_keyapi_name:API类型[item_search,item_get]cache:[yes,no]默认yes,将调用缓存的数据,速度比较快result_type:[json,xml,serialize,var_export]返回数据格式,默认为jsonlang:[cn,en,ru]翻译语言,默认cn简体中文API:i......