如何在不使用以下功能的情况下给出列表模式:dict,import,count,max,sort,enumerate,sorted

时间:2018-10-20 16:28:07

标签: python python-3.6

我必须编写一个输入10个数字的程序,并且该程序必须给出列表的模式,而不会取消对函数的定位:

预测,导入,计数,最大,排序,枚举,排序!

我不知道如何编写“计数”“排序”手动功能。

2 个答案:

答案 0 :(得分:0)

如果对可以使用的功能或模块没有限制,则获取列表模式的最有效方法是使用collections.Counter类的from collections import Counter Counter([1,1,2,2,2,3,4,4,5,6]).most_common(1)[0][0] # this returns 2 方法:

import

但是由于不允许您使用dict,因此您可以自己使用dict(不是def get_mode(lst): dic = {} for item in lst: dic[item] = dic.get(item, 0) + 1 mode, largest = None, None for item, count in dic.items(): if largest is None or largest < count: mode, largest = item, count return mode 函数,而是dict数据类型)来实现相同的逻辑,以跟踪计数,然后遍历字典项以找到计数最大的项:

get_mode([1,1,2,2,2,3,4,4,5,6])

这样:

2

将返回:if (isset( $_REQUEST['signupnbtn'] ) ) { $age = mysqli_real_escape_string($con,$_REQUEST['ageinput']); $discord = mysqli_real_escape_string($con,$_REQUEST['discordinput']); $email = mysqli_real_escape_string($con,$_REQUEST['emailinput']); $tmp = mysqli_real_escape_string($con,$_REQUEST['tmpinput']); $steam = mysqli_real_escape_string($con,$_REQUEST['steaminput']); $datum = date("Y-m-d"); $errorcode = 0; $q = "INSERT INTO `admissions` (age, discord, email, tmp, steam, datum) VALUES ('$age', '$discord', '$email', '$tmp', '$steam', '$datum')"; $query2 = "SELECT email FROM `admissions` WHERE email='$email'"; $sql = mysqli_query($con,$query2); $countrows = mysqli_num_rows($sql); if($countrows >= 1){ $errorcode = 1; }else { $result = mysqli_query($con,$q); } if ($result) { $errorcode = 4; } }

答案 1 :(得分:0)

使用c作为包含(count, item)的元组。我们可以使用iter来遍历lst中的值,如果它们的计数大于前一个,我们可以更新元组以表示该项目,在iter用完之后,我们打印元组中的项。

lst = [1, 2, 2, 3, 3, 3, 4, 5, 6, 6]

a = iter(lst)
c = (None, None)
while True:
    try:
        b = next(a)
        count = 0
        for i in lst:
            if b == i:
                count += 1
        if c[0] == None:
            c = (count, b)
        elif count > c[0]:
            c = (count, b)
    except StopIteration:
        break

print(c[1])
# 3