あなただけのリストのスライスを使用することができます。
mylist = [1,2,3,4,5]
indexInput = int(input("Enter the index: "))
itemInput = int(input("Enter the item: "))
if indexInput<0:
indexInput = len(mylist)+indexInput+1
mylist = mylist[:indexInput] + [itemInput] + mylist[indexInput:]
print(mylist)
# for index 3 and item 7 => [1, 2, 3, 7, 4, 5]
# for index -2 and item 6 => [1, 2, 3, 4, 6, 5]
は説明:
list[start:end:step] => list items from index [start] to index [end-1] with a step of 1
if start is not given, 0 is assumed, if end is not given, it goes all the way to the end of the list, if step is not given, it assumes a step of 1
In my code I wrote:
mylist = mylist[:indexInput] + [itemInput] + mylist[indexInput:]
for indexInput=3 and itemInput=7
mylist = mylist[:3] + [7] + mylist[3:]
mylist[:3] => mylist from 0 (start not given), to 3-1, step of 1 (step not given)
list1 + list2 => a list that contains elements from list1 and list2
mylist[:3] + [7] => [...elements of mylist[:3]..., 7]
mylist[3:] => mylist from 3, to len(mylist)-1 (end not given), step of 1 (step not given)
あなたはそれを長い道のりをしたい場合は、ここソリューションです:ここで
mylist = [1,2,3,4,5]
indexInput = int(input("Enter the index: "))
itemInput = int(input("Enter the item: "))
if indexInput<0:
indexInput = len(mylist)+indexInput+1
leftSide = []
rightSide = []
for i in range(len(mylist)):
if i<indexInput:
leftSide.append(mylist[i])
elif i>indexInput:
rightSide.append(mylist[i])
else:
leftSide.append(itemInput)
leftSide.append(mylist[i])
mylist = leftSide + rightSide
print(mylist)
# for index 3 and item 7 => [1, 2, 3, 7, 4, 5]
# for index -2 and item 6 => [1, 2, 3, 4, 6, 5]
説明のための束に感謝します。しかし、私のインデックスが負のインデックスである場合、コードは機能しません。 – Maxxx
@Maxxxはこの場合の絶対値を得るために 'abs()'関数を使います。私の更新された私の答えをチェックしてください。 –
申し訳ありませんが、負のインデックスを使用する場合は、list [-2] = item – Maxxx