鱼C论坛

 找回密码
 立即注册
查看: 1225|回复: 2

[已解决]列表比较的问题,请大师帮忙,谢谢

[复制链接]
发表于 2023-5-24 22:50:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
date1 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15',  '2023/05/17', '2023/05/18', '2023/05/19', '2023/05/22', '2023/05/23']

date2 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/05', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15', '2023/05/16', '2023/05/17',  '2023/05/19', '2023/05/23']

比较date1列表与date2列表,得出:

date1列表比date2列表多出的日期是:

date2列表比date1列表多出的日期是:

求代码,请大师帮忙,谢谢
最佳答案
2023-5-24 22:54:28
本帖最后由 歌者文明清理员 于 2023-5-24 22:55 编辑

可以使用set集合的差集运算来求出两个列表之间的差异:
Copy Code
  1. date1 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15', '2023/05/17', '2023/05/18', '2023/05/19', '2023/05/22', '2023/05/23']

  2. date2 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/05', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15', '2023/05/16', '2023/05/17', '2023/05/19', '2023/05/23']

  3. set1 = set(date1)
  4. set2 = set(date2)

  5. # 求出date1比date2多出的日期
  6. diff1 = list(set1 - set2)
  7. print("date1列表比date2列表多出的日期是:", diff1)

  8. # 求出date2比date1多出的日期
  9. diff2 = list(set2 - set1)
  10. print("date2列表比date1列表多出的日期是:", diff2)
复制代码

输出结果:
Copy Code
  1. date1列表比date2列表多出的日期是: ['2023/05
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-24 22:54:28 | 显示全部楼层    本楼为最佳答案   
本帖最后由 歌者文明清理员 于 2023-5-24 22:55 编辑

可以使用set集合的差集运算来求出两个列表之间的差异:
Copy Code
  1. date1 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15', '2023/05/17', '2023/05/18', '2023/05/19', '2023/05/22', '2023/05/23']

  2. date2 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/05', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15', '2023/05/16', '2023/05/17', '2023/05/19', '2023/05/23']

  3. set1 = set(date1)
  4. set2 = set(date2)

  5. # 求出date1比date2多出的日期
  6. diff1 = list(set1 - set2)
  7. print("date1列表比date2列表多出的日期是:", diff1)

  8. # 求出date2比date1多出的日期
  9. diff2 = list(set2 - set1)
  10. print("date2列表比date1列表多出的日期是:", diff2)
复制代码

输出结果:
Copy Code
  1. date1列表比date2列表多出的日期是: ['2023/05
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-24 22:55:04 | 显示全部楼层
你可以用集合(set)来解决这个问题。以下是Python代码的示例:

  1. date1 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15',  '2023/05/17', '2023/05/18', '2023/05/19', '2023/05/22', '2023/05/23']
  2. date2 = ['2023/04/27', '2023/04/28', '2023/05/04', '2023/05/05', '2023/05/08', '2023/05/09', '2023/05/10', '2023/05/11', '2023/05/12', '2023/05/15', '2023/05/16', '2023/05/17',  '2023/05/19', '2023/05/23']

  3. # 转为集合
  4. set1 = set(date1)
  5. set2 = set(date2)

  6. # 计算差集
  7. more_in_date1 = set1 - set2
  8. more_in_date2 = set2 - set1

  9. print("date1列表比date2列表多出的日期是:")
  10. for date in more_in_date1:
  11.     print(date)

  12. print("date2列表比date1列表多出的日期是:")
  13. for date in more_in_date2:
  14.     print(date)
复制代码


这段代码首先将两个日期列表转为集合,然后使用集合的差集运算得出每个列表相对于另一个列表多出的日期。在Python中,集合的差集运算可以通过 - 符号完成, set1 - set2 将返回所有在 set1 中但不在 set2 中的元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 20:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表