如何计算列表中的数字?

时间:2019-03-30 06:47:56

标签: python python-2.7

我有一个从1到20的数字列表。随机10个数字。 我需要打印1、2、3、4等数字。直到列表中出现20。

问题在于,当它计数时,它会将11、12、13、14等计数为1。 我如何设置它到11时不会将其计为1,如果涉及其他数字(例如:12、13、14),则不会将其计为1或2,3,4。

谢谢您的回答!

count = 0
f = open("numbers.txt")
for line in f:
    count += line.count("1")


print (count)
f.close()

5 个答案:

答案 0 :(得分:2)

描述有点模棱两可,所以我在猜测您要寻找的东西。您是否要打印数字1到20?如果是这样,这就是我的做法:

打印到控制台

function hash(str) {

  let g = 8;
  let charset = "abcdefghijklmnop";

  for(let i = 0; i < str.length; i++) {
    g = (g * 82 + charset.indexOf(str[i]));
  }

  return g;

}

写入文件

for i in range(20):
  print(i + 1)

如果这不是您想要的内容,可以提供更多详细信息吗?可能期望输入/输出?

编辑如果要计算文件中的实例:

with open("numbers.txt", 'w') as f:
    for i in range(20):
        f.write("{}\n".format(str(i + 1)))

searchNum = 10 count = 0 with open("num.txt", "r") as f: for line in f: if int(line.strip()) == searchNum: count += 1 用于删除行上的所有空白

编辑编辑 这是使用list comprehensions的另一种样式:

strip()

答案 1 :(得分:2)

您可以通过将字符串转换为每行的整数来实现。 对于每个

for line in f:
    count += 1 if int(line) == 1

如果文件每行包含多个整数:

for line in f:
    num_arr = line.split(' ')
    count += num_arr.count('1') #this works now since num_arr is a list of string                                                                              

答案 2 :(得分:1)

您现在正在每行中计数数字字符

for line in f:  # line is string
    count += line.count("1")  # oh no! digit characters are counted!

要解决此问题,您必须还原数字的真实列表。

要获取“数字”列表,可以按空格分隔内容。现在,“数字”是字符串。

number_in_str = f.read().split()

下一步,将其转换为数字,然后计数。

numbers_list = [int(u) for u in number_in_str]

count = numbers_list.count(1)

答案 3 :(得分:0)

f = open(r"result.txt").read()
count = f.count('1')
print(count)

输出

12

答案 4 :(得分:0)

create or replace package p_sales_pkg 
as 
type rc is ref cursor;
procedure get_query( p_cursor in out rc, p_start date, p_end date );
end;
/

create or replace package body p_sales_pkg
as
 procedure get_query( p_cursor in out rc, p_start date, p_end date )
 is
 l_query long := 'select s_name ';
 begin
  for i in 1 .. trunc(p_end)-trunc(p_start)+1
 loop
 l_query := l_query || ', sum( decode( trunc(s_date), ' ||
 'to_date( ''' || to_char(p_start+i-1,'yyyymmdd') ||
 ''', ''yyyymmdd'' ), s_qty, 0 )) "' ||
 to_char(p_start+i-1) || '"';
 end loop;
l_query := l_query || ' from sales group by s_name';
 open p_cursor for l_query;
 end;
 end;
 /

set autoprint on



var x refcursor

exec nw_demo_pkg.get_query( :x, '10-MAR-19', '13-MAR-19' );