futui 发表于 2023-5-24 22:50:45

列表比较的问题,请大师帮忙,谢谢

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
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']

set1 = set(date1)
set2 = set(date2)

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

# 求出date2比date1多出的日期
diff2 = list(set2 - set1)
print("date2列表比date1列表多出的日期是:", diff2)
输出结果:
Copy Code
date1列表比date2列表多出的日期是: ['2023/05

isdkz 发表于 2023-5-24 22:55:04

你可以用集合(set)来解决这个问题。以下是Python代码的示例:

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']

# 转为集合
set1 = set(date1)
set2 = set(date2)

# 计算差集
more_in_date1 = set1 - set2
more_in_date2 = set2 - set1

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

print("date2列表比date1列表多出的日期是:")
for date in more_in_date2:
    print(date)


这段代码首先将两个日期列表转为集合,然后使用集合的差集运算得出每个列表相对于另一个列表多出的日期。在Python中,集合的差集运算可以通过 - 符号完成, set1 - set2 将返回所有在 set1 中但不在 set2 中的元素。
页: [1]
查看完整版本: 列表比较的问题,请大师帮忙,谢谢