Python截断整数数组中的数字

时间:2012-03-02 20:13:44

标签: python list function

我在教自己Python并遇到一个奇怪的问题。我要做的是将一个列表传递给一个函数,并让函数返回一个列表,其中元素是它周围数字的总和,但我认为会产生一些奇怪的结果,所以我做了一个调试版本的仍然表现出行为的代码如下:

当我创建一个整数数组,然后将它传递给一个函数,然后使用for循环打印列表的各个值时,每个int中第一个数字后面的数字都会被截断。

例如,以下输入和输出:

Please enter a number: 101
Please enter a number: 202
Please enter a number: 303
Please enter a number: .
1
2
3

无论输入是否为10,101或13453,都会发生这种情况 - 发生相同的行为。

我知道我可能遗漏了一些简单的东西,但是为了我,没有任何谷歌搜索可以让我解决这个问题。下面是我用来执行此操作的代码。有趣的是:当在任何点打印for循环之外的整个列表时,它会返回完整且正确的列表(即['101','202','303'])

谢谢!

temp = list()

def sum(list):
    print list
    for i in range(1, len(list)+1):
        print i
    return temp

L = list()
while True:
    input = raw_input("Please enter a number: ");
    if input.strip() == ".":
        break
    L.append(input);

print L

L2 = sum(L)
print L2

2 个答案:

答案 0 :(得分:5)

循环

for i in range(1, len(my_list)+1):
    print i

迭代从1到len(my_list)的数字,而不是列表中的项目。要做后者,请使用

for x in my_list:
    print x

(我已将list重命名为my_list以避免再次出现问题。)

答案 1 :(得分:2)

您正在打印计数器,而不是列表项。这就是你想要的:

for i in list:
    print i

list本身是可迭代的,你不需要一个计数器来循环它。