python删除列表中的偶数 |
您所在的位置:网站首页 › python找出下标为偶数的元素,并从列表中删除 › python删除列表中的偶数 |
我试图更好地理解Python中的列表理解.我在代码战中完成了一个在线挑战,并提供了一个相当不优雅的解决方案,如下所示. 挑战是: >给出偶数和一个奇数的列表,返回奇数 >给出一个奇数和一个偶数的列表,返回偶数 我(不优雅)的解决方案是: def find_outlier(integers): o = [] e = [] for i in integers: if i % 2 == 0: e.append(i) else: o.append(i) # use sums to return int type if len(o) == 1: return sum(o) else: return sum(e) 哪个工作正常,但似乎是相当蛮力.我认为用o和e这样的占位符列表开始(大多数)函数是非常“noob-like”我错了吗? 我希望更好地理解为什么这个解决方案适用于奇数列表,但是在偶数列表中失败,以便更好地理解列表理解: def find_outlier(integers): if [x for x in integers if x % 2 == 0]: return [x for x in integers if x % 2 == 0] elif [x for x in integers if x % 2 != 0]: return [x for x in integers if x % 2 != 0] else: print "wtf!" o = [1,3,4,5] e = [2,4,6,7] In[1]: find_outlier(o) Out[1]: [4] In[2]: find_outlier(e) Out[2]: [2, 4, 6] Out [2]应该返回7. 提前感谢任何见解. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |