python中取两个列表中不同的元素

print [i for i in c if  i not in b]   注:b为报表中输出的酒店列表,C为酒店提供的列表,现在C为2865家,而报表中输出的只有2842家。有23家没有输出,需要确认这23家是不是真的没有price数据。

目前工作中客户总是提出增加hotel列表的需求,测试时每次都需要抽查新增酒店是否增加,还要做全量酒店数的验证,但由于生成ALL的CSV文件特别大,用EXCEL打不开,所以只能用python脚本读取来统计报表中输出的hotle数量。遇到了打开CSV时编码格式的问题,用utf-8不行,之前验证钟点房时,是可以的,这次就不行,最后改用utf-16就可以了,但我还是不知道为什么,这次我统计的是hotelID,但输出来的形如

b = [u'HOTEL_ID', u'15164071', u'808834', u'467288', u'430214', u'436167'] 这样的酒店列表,处理一下就OK了

第一步:先把最前面的表头u''HOTEL_ID'去掉,  b.pop(0)

第二步:再用int函数就可以与EXCEL中提供的应行对比了。 c =[int(val) for val in b] 

总之:编码是我记远的痛。555555 

原文地址:https://www.cnblogs.com/yoyoma0355/p/11430163.html