我必须编写一个输入10个数字的程序,并且该程序必须给出列表的模式,而不会取消对函数的定位:
预测,导入,计数,最大,排序,枚举,排序!
我不知道如何编写“计数”“排序”手动功能。
答案 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