Python 列表推导和有序字典中第 K 个不重复字符


在本文中,我们将学习如何利用 Python 列表推导和有序字典获得第 K 个不重复字符。为此,我们将借助 Python 中的内置结构。

算法

1. First, we form a dictionary data from the input.
2. Now we count the frequency of each character.
3. Now we extract the list of all keys whose value equals 1.
4. Finally, we return k-1 character.

示例

from collections import OrderedDict
import itertools
def kthRepeating(inp,k):
   # returns a dictionary data
   dict=OrderedDict.fromkeys(inp,0)
      # frequency of each character
   for ch in inp:
      dict[ch]+=1
   # now extract list of all keys whose value is 1
   nonRepeatDict = [key for (key,value) in dict.items() if value==1]
   # returns (k-1)th character
   if len(nonRepeatDict) < k:
      return 'no ouput.'
   else:
      return nonRepeatDict[k-1]
# Driver function
if __name__ == "__main__":
   inp = "tutorialspoint"
   k = 3
   print (kthRepeating(inp, k))

输出

a

总结

在本文中,我们利用列表推导和有序字典找到了 Python 中的第 K 个不重复字符。

更新时间: 2019 年 8 月 29 日

269 次查看

开始你的 职业生涯

完成课程后获得认证

开始
广告