限制python中列表的大小

时间:2012-06-23 23:15:12

标签: list python-2.7

我想在python 2.7中限制列表的大小我一直尝试使用while循环但是它不起作用

l=[]
i=raw_input()//this is the size of the list
count=0
while count<i:
    l.append(raw_input())
    count=count+1

事情是它没有完成循环。我认为这个问题有一个简单的答案,但我找不到。 提前致谢

3 个答案:

答案 0 :(得分:2)

我认为问题在于:

i=raw_input()//this is the size of the list

raw_input()返回一个字符串,而不是一个整数,因此icount之间的比较没有意义。 [在Python 3中,您将收到错误消息TypeError: unorderable types: int() < str(),这会使事情变得清晰。]如果您将i转换为int,但是:

i = int(raw_input())

它应该做你期望的。 (如果需要,我们将忽略错误处理等,并可能将您添加的内容转换为l。)

请注意,编写类似

的内容会更像Pythonic
for term_i in range(num_terms):
    s = raw_input()
    l.append(s)

大多数情况下,您不需要手动跟踪指数“+1”,所以如果您发现自己这样做,可能会有更好的方法。

答案 1 :(得分:1)

那是因为我有一个字符串值类型,而int&lt; “string”总是返回true。

你想要的是:

l=[]
i=raw_input() #this is the size of the list
count=0
while count<int(i): #Cast to int
    l.append(raw_input())
    count=count+1

答案 2 :(得分:0)

您应该尝试将代码更改为:

l = []
i = input() //this is the size of the list
count = 0
while count < i:
    l.append(raw_input())
    count+=1

raw_input()返回一个字符串,而input()返回一个整数。 count+=1编程实践也比count = count + 1更好。祝你好运