有没有一种方法可以处理通过终端输入的数字整数列表而不将它们保存到列表中?
Is there a way of processing list of number integers entered via terminal without saving them into list?
我正尝试在 Python 中编写类似的代码,但我是新手。
int counts[] = { 0, 0, 0, 0, 0 };
for (int i = 0; i < groups; i++) {
int groups_size;
scanf(" %d", &groups_size);
counts[groups_size] += 1;
}
请注意,它不会将所有号码都保存到内存中。
我试图在 Python 中这样做:
for group in range(groups):
num = int(input().strip())
counts[num] += 1
这不起作用。当我在终端输入 1 2 3 4 5
时,我得到 ValueError: invalid literal for int() with base 10: '1 2 3 4 5'
.
有没有办法在 Python 中像我在 C 中那样做?
在python中,不会自动取一个数再循环取另一个数。您的 input()
命令将立即读取整行。因此,您可以做的是读取字符串中的整行,然后将其拆分为如下列表 -
str = input()
num = list(map(int,str.split()))
现在您已将用户提供的所有输入存储在 num
变量中。您可以迭代它并按如下方式完成您的过程 -
counts = [0]*5 #assuming you want it to be of size 5 as in your question
for inp in num :
counts[inp] = counts[inp] + 1
希望对您有所帮助!
我正尝试在 Python 中编写类似的代码,但我是新手。
int counts[] = { 0, 0, 0, 0, 0 };
for (int i = 0; i < groups; i++) {
int groups_size;
scanf(" %d", &groups_size);
counts[groups_size] += 1;
}
请注意,它不会将所有号码都保存到内存中。
我试图在 Python 中这样做:
for group in range(groups):
num = int(input().strip())
counts[num] += 1
这不起作用。当我在终端输入 1 2 3 4 5
时,我得到 ValueError: invalid literal for int() with base 10: '1 2 3 4 5'
.
有没有办法在 Python 中像我在 C 中那样做?
在python中,不会自动取一个数再循环取另一个数。您的 input()
命令将立即读取整行。因此,您可以做的是读取字符串中的整行,然后将其拆分为如下列表 -
str = input()
num = list(map(int,str.split()))
现在您已将用户提供的所有输入存储在 num
变量中。您可以迭代它并按如下方式完成您的过程 -
counts = [0]*5 #assuming you want it to be of size 5 as in your question
for inp in num :
counts[inp] = counts[inp] + 1
希望对您有所帮助!