Day05 - 2018-04-07

今天尝试了下使用几何推导式优化原有的代码,使其pythonic一些,瞬间感觉高大上了

程序逻辑是从两个csv中读出数据,每行读到是一个list,需要统计这两个csv读到的所有list的前两项组成的list有多少不重复记录。很明显,让我们用set去统计唯一值,原来的写法是这样的

tel_set = set()

for text in texts:

    tel_set.add(text[0])

    tel_set.add(text[1])

for call in calls:

    tel_set.add(call[0])

    tel_set.add(call[1])

print(len(tel_set))

很符合正常的思维逻辑

而使用集合推导式处理过pythonic是这样

tel_set = {item for item_list in (texts + calls) for i, item in enumerate(item_list) if i < 2}

print(len(tel_set))

是不是高大上很多~~

这里有几点要说明,集合(set)推导式使用与列表推导式相同,只是把[]换成了{},本例使用了list的运算list1+list2的结果是这两个list的合集。另外,也使用了enumerate函数,它是一个迭代器,在循环时返回下标,这里这需要统计前两项,因此用来判断下标是否在列表的前两项

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,878评论 0 10
  • 昨天中午,娱乐八卦挖掘机卓伟曝光了白百合出轨的实锤。 所谓实锤,其实是白百合泰国秘会小鲜肉的R级视频。 视频中,白...
    晏耀飞阅读 1,087评论 0 4
  • 同往常一样,惊醒后整个房间都显得很诡异,不敢再安心的睡去。她叫佑秋,原本是个普通的不能再普通的女生,却在15...
    我是人间的惆怅客阅读 257评论 1 0
  • 喜欢 洁白纯净如你 花香徐徐沁心 阳光下会灿烂微笑 风雨中会坚韧不息 喜欢 姹紫嫣红各有异 无需攀比随风雨 开时四...
    花非物欲阅读 231评论 0 3
  • 好久没在简书写字了,一方面是感觉成效不大,并没有太大的成就感。另外,就是知识储备不够,为了写而写,文字一旦附加了...
    糊说巴道阅读 635评论 0 4

友情链接更多精彩内容