【发布时间】:2016-04-20 22:44:57
【问题描述】:
给定 m 组具有 n 个元素的整数。
我有下面的代码,它输出出现最多次数的元素。
def find_element_which_appeared_in_max_sets(input_set):
hash_table = {}
# count the frequencies
for pair in input_set:
for i in range(0,len(pair)):
if pair[i] in hash_table:
hash_table[pair[i]] = hash_table[pair[i]] + 1
else:
hash_table[pair[i]] = 1 # first occurence
# scan and find the element with highest frequency.
max_freq = 0
for elem in hash_table:
if hash_table[elem] > max_freq:
max_freq = hash_table[elem]
max_occured_elem = elem
return max_occured_elem
input_set = {(5,4),(3,2),(4,3),(8,3)}
print ""+str(find_element_which_appeared_in_max_sets(input_set))
输出:
3
是否有一种更简洁/优雅的方式来遍历集合中的各个元素?
【问题讨论】:
-
你的意思是
set中的mtuples有n元素吗? -
对于初学者,
for i in range(0,len(pair)):应该只是for i in pair: -
是的,假设 m = 4 和 n = 2 那么输入是 input_set = {(5,4),(3,2),(4,3),(8,3)}跨度>
标签: python python-2.7 set iteration hashtable