如何将用户的输入存储到python中的数组中的指定索引中

时间:2013-11-06 00:01:41

标签: python python-2.7 python-3.x

我在完成家庭作业时遇到问题,我需要向用户询问号码和位置,然后将该号码存储到列表中的特定位置。我的python技能非常基础,但任何帮助都会非常感激。

问题:

两个玩家轮流在任何空位置插入一个0到9范围内的数字。每个玩家可以选择任何剩余号码,但每个号码只能使用一次。

应该发生的事情的例子:

玩家1:你的号码? 7

要输入的位置? 9

职位:1 2 3 4 5 6 7 8 9 10

     | | | | | | | | |7| |

我失败的尝试:

data = []

x = raw_input('integer: ')

for i in range(10):

    data.insert(9, x)


print(data)

4 个答案:

答案 0 :(得分:2)

raw_input()返回一个字符串,而不是python中的整数。要将其转换为整数,您需要执行x = int(raw_input('integer: '))

然后你的插入函数应该可以正常工作,但要注意你只是在每个插槽中添加相同的整数。

首先制作一个空值列表:

data = [' ']*10

然后做data[9-1] = str(x)。不需要list.insert :),也没有任何循环。

请记住,索引从0开始,所以第9个位置python的意思是第8个。

答案 1 :(得分:1)

data = [None]*10
data[9] = x 

应该工作,你需要给它足够的插槽

您的代码存在问题

for i in range(10):

    data.insert(9, x)

您正在第9位插入一个新项目......但是您的数组是空的,因此没有位置9可以插入

答案 2 :(得分:0)

尝试:

data=[-1]*10 #initialize data to length 10 with invalid values for input
x = -1
while not (0<=x<=9):
    try:
        x=raw_input("integer : ")
    except ValueError:
        print("enter an integer")
data[9] = x 

你可以扩展它,主要是转换为整数并捕获输入错误。

答案 3 :(得分:0)

我的成功尝试:

data = ['']*10

x = raw_input('integer: ')
position_to_be_entered=9
data[position_to_be_entered-1]=int(x)


print data