数据库中行数的条件(超过 10 个五线谱或少于 10 个五线谱)
python 188
原文标题 :Condition with number of rows in a database (more than 10 staves or less than 10 staves)
我有一个计算算术平均值的简单代码。在示例中,我们计算 10 个元素的平均值除以 10。
但有时元素小于 10,所以显然我不能除以 10。所以我想确保如果列表中的元素是 10,那么您通常像我一样通过除以 10 来计算平均值。如果列表中的元素少于 10 个,例如有 7 个,我想:
- 计算列表中的 7 个元素
- 除以 7(列表中计算的元素)
如何正确编写“如果行 == 10”和“如果行不是 10”?我不知道。还有“rows.count()”是计算行数的正确代码吗?谢谢
conn = sqlite3.connect('/database.db')
cursor = conn.cursor()
#arithmetic average
cursor.execute('SELECT x, y FROM table1 WHERE x = ? LIMIT 10;', [combo])
rows= self.cursor.fetchall()
if rows == 10:
arithmetic_average_10 = sum(int(row[0]) for row in rows) / (10)
if rows not 10:
count_elements = rows.count()
arithmetic_average_inferior10 = sum(int(row[0]) for row in rows) / (count_elements)
回复
我来回复-
BrokenBenchmark 评论
有两点值得指出:
- if 语句不是必需的,因为您的查询将结果限制为十行。您可以删除它们。这也删除了两个不同分支中的两个不同名称的变量,这使得在 if 块之外使用计算的平均值更容易。
- 要获取结果中的行数,请使用 len() 。
这为我们提供了以下代码片段:
conn = sqlite3.connect('/database.db') cursor = connessione.cursor() #arithmetic average cursor.execute('SELECT x, y FROM table1 WHERE x = ? LIMIT 10;', [combo]) rows= self.cursor.fetchall() count_elements = len(rows) arithmetic_average_inferior10 = sum(int(row[0]) for row in rows) / (count_elements)
2年前