将负索引替换为列表中的项目作为输入

时间:2017-09-08 14:01:56

标签: python

目前,我有一个列表:

aList = [1,2,3,4,5]

我想做的是模仿' aList [index] = item' python中的函数。程序提示用户输入否定索引和要替换的项目。

enter negative index: -2
enter item to replace: 7

这会给我:

[1,2,3,7,5]

因为,当索引为负时,python从列表的后面开始计数。这是我的代码:

aList = [1,2,3,4,5]

index = int(input("Enter index:"))
item = int(input("Enter item:"))

j = -1                            #-1 means the counter should begin with -1 not 0
start = len(aList)-1             #i want python to start from the back of the list


while j<start:
    if j == index:
        aList[j] = item
    j-=1                      
print(lst)

由于j- = 1,我得到一个无限循环,我想知道我是否正确地模仿它?

3 个答案:

答案 0 :(得分:1)

我认为首先你需要清楚你关于数组的概念。

什么是数组。?

一种数据结构,可以存储相同类型元素的固定大小顺序集合。数组用于存储数据集合,但将数组视为同一类型变量的集合通常更有用。

不是声明单个变量,例如number0,number1,...和number99,而是声明一个数组变量,例如数字,并使用数字[0],数字1和...,数字[99]代表个别变量。数组中的特定元素由索引访问。

所有数组都包含连续的内存位置。最低地址对应于第一个元素,最高地址对应于最后一个元素。

Graphical Representation of Array

Python中的数组

要定义列表,您只需在方括号中写下逗号分隔的项目列表:

myList=[1,2,3,4,5,6]

这看起来像一个数组,因为你可以使用“切片”表示法来挑选出一个单独的元素 - 索引从0开始。例如

print myList[2]

将显示第三个元素,即在这种情况下的值3。与更改第三个元素类似,您可以直接指定它:

myList[2]=100

切片表示法看起来像数组索引,但它更灵活。例如

myList[2:5]

是从第三个元素到第五个元素的子列表,即从myList [2]到myList [4]。请注意,指定的最终元素,即[5]不包含在切片中。 另请注意,您可以省略开始和结束索引,并假定它们具有最大可能值。例如

myList[5:]

是列表[5]到列表末尾的列表

myList[:5]

是最多但不包括myList [5]和

的列表
myList[:]

是整个列表。 列表切片与字符串切片大致相同,只是您可以修改切片。例如:

myList[0:2]=[0,1]

具有相同的效果
myList[0]=0
myList[1]=1

最后值得知道的是,分配给切片的列表不必与切片大小相同 - 即使它的大小不同,它也只是替换它。

答案 1 :(得分:0)

当你只能通过索引访问元素时,我不确定你为什么需要一个循环:

aList = [1,2,3,4,5]
index = int(input("Enter index:"))
item = int(input("Enter item:"))
aList[index] = item

答案 2 :(得分:0)

当然你的循环是无限的...变量&#39; j&#39;不断变得更负面,你要比较它,所以&#39; start&#39 ;,这是列表的长度减1。