目前,我有一个列表:
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,我得到一个无限循环,我想知道我是否正确地模仿它?
答案 0 :(得分:1)
我认为首先你需要清楚你关于数组的概念。
一种数据结构,可以存储相同类型元素的固定大小顺序集合。数组用于存储数据集合,但将数组视为同一类型变量的集合通常更有用。
不是声明单个变量,例如number0,number1,...和number99,而是声明一个数组变量,例如数字,并使用数字[0],数字1和...,数字[99]代表个别变量。数组中的特定元素由索引访问。
所有数组都包含连续的内存位置。最低地址对应于第一个元素,最高地址对应于最后一个元素。
要定义列表,您只需在方括号中写下逗号分隔的项目列表:
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。