我在做作业时遇到了这个问题,我几乎明白了,但还不是很清楚。我必须开发一些将列表和数字作为参数的代码。该函数返回列表的副本,其中第一个项目数被颠倒。我不能使用内置函数,切片或反向,只能使用append。()和range()。真的会感谢某人在修复我当前代码以及解释您如何修复它方面的帮助吗?谢谢!!!
str_list6 = ['e', 'd', 'u', 'd']
def length(my_list):
total = 0
for c in my_list:
total += 1
return total
def remove_value(my_list):
res = []
for i in range(length(my_list) -1, -1, -1):
res.append((my_list)[i])
return res
给出的示例:
numList = [1, 2, 3, 4, 5, 6, 7]
number = 4
The call to reverse(numList, number) should
return the new list
[4, 3, 2, 1, 5, 6, 7].
因此,我的代码当前仅是反转列表,但是(很难解释),它需要随着“数字”的移位而反转。希望这有道理!
答案 0 :(得分:1)
这里的问题是您没有考虑要转移的数字。在您的示例中,为您提供了两个变量,即列表和要移动的数字(这是您要查找的位置还是实际数字?-假定位置),但是您的代码仅包含列表。
def remove_value(my_list, pos_to_reverse):
res = []
for i in range(pos_to_reverse-1, -1):
res.append(my_list[i])
for i in range(pos_to_reverse, length(my_list)-1):
res.append(my_list[i])
return res
答案 1 :(得分:0)
您可以使用这个小循环:
numList = [1, 2, 3, 4, 5, 6, 7]
number = 4
def reverse(l, n):
for i in range((n + 1) // 2):
l[i], l[n - i - 1] = l[n - i - 1], l[i]
return l
print(reverse(numList, number))
输出:
[4, 3, 2, 1, 5, 6, 7]
答案 2 :(得分:0)
您越来越近了!我认为下面的功能可以满足您的需求。
def reverse(numList,number):
# Make an empty list
reversedlist=[]
for i in range(number):
# i goes from 0 to number-1
reversedlist.append(numList[number-i-1])
# build a reversed list by adding each element
# of numList going in reverse order.
for i in range(number):
# i goes from 0 to number-1
numList[i]=reversedlist[i]
# change the first 'number' elements of the
# original list with the reversed list.
return numList
numList = [1, 2, 3, 4, 5, 6, 7]
number = 4
print(reverse(numList,number))
# prints: [4, 3, 2, 1, 5, 6, 7]
答案 3 :(得分:0)
您可能会这样做。
l = [1, 2, 3, 4, 5, 6, 7]
n = 4
def solution(lst,n):
size = n
hiindex = size - 1
its = size//2
for i in range(0, its):
temp = lst[hiindex]
lst[hiindex] = lst[i]
lst[i] = temp
hiindex -= 1
return lst
print(solution(l,n))