初见Python解题之道(五)

Item

如何获取列表中同一元素出现次数为奇数的该元素

Contents

给定一个列表,列表中某一元素出现的次数为奇数时,请返回该元素的数值,元素的类型均为整数
举例:这个列表为[1,2,3,3,1,5,5,3],那么应返回3
题目来源:codewars(6Kyu)

Knowledge

  1. 数据类型:整数(int)
  2. 运算符:比较运算符、赋值运算符、成员运算符
  3. 容器:列表(List)、字典(Dict)
  4. 其他:for循环体、字典的遍历等

Me

  1. 定义函数find_it(seq),seq为源列表;
  2. 简要思路:建立字典同时利用get()方法获取重复元素的个数;
  3. 之后就在字典和列表中进行操作,简单的进行遍历。

Code

此处稍作修改,CodeWarn上的只做简单处理,有时候遇到多个不同的重复奇数目的元素只会优先输出第一个,如[1,2,2,2],仅仅会输出1,此处直接输出为新的列表re,即达到题目要求的全部输出,如需输出字符串,另行For循环解决。

#!\usr\bin\env python
# -*- coding:utf-8 -*-
def find_it(seq):
    dict, re = {},list()
    for k in seq:
        dict[k]=dict.get(k,0)+1      
    [re.append(key) for key,value in dict.items() if value%2 != 0]   
    return re
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾平安6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值