如何使用索引遍历列表
How to iterate through a list using index
我正在制作一个从 0 到某个数字输入的函数我尝试使用 print 实现它并且有效但输出需要是一个 return 值所以我尝试制作一个列表然后迭代通过它使用 for 循环并 return 使用列表的索引返回列表的每个值但这不起作用它只 returns 列表的最后一个值我还想要 return将值设为字符串,而不是列表。
这是我的代码
nums = []
def numbers_range(number):
for i in range(number+1):
numz = nums.append(i)
for g in range(len(nums)):
numb = nums[g]
return numb
print(numbers_range(5))
结果 5
我想要的结果 0 1 2 3 4 5
请帮忙
所以我认为问题出在您对 range()
的使用上。根据我的经验,range()
需要像 range(min, max)
那样格式化,而你正在像 range(min)
.
那样格式化
我想你想要的会来自这段代码:
nums = []
def numbers_range(number):
for i in range(0, number+1):
numz = nums.append(i)
for g in range(0, len(nums)):
numb = nums[g]
return numb
print(numbers_range(5))
希望这对你有用!
您的包含变量 'g' 的 for 循环将值 1 放在同一个变量 numb 中的 next 之上。
基本上 numb 中的每个值都被列表中的新值覆盖。
改为这样做。
def numbers_range(number):
nums = []
for i in range(number+1):
nums.append(i)
ans = "".join([str(no) for no in nums])
return ans
print(numbers_range(5))
这里是代码,
我们正在创建一个名为 nums 的新列表。
然后我们从 0 遍历到数字并将每个值附加到列表中。
最终返回转换为字符串的列表。
一个解决方案是
def numbers_range(number):
ans = [str(i) for i in range(number+1)]
return " ".join(ans)
print(numbers_range(5))
另一个解决方案是
def numbers_range(number):
ans = []
for i in range(number+1):
ans.append(str(i))
return " ".join(ans)
print(numbers_range(5))
for i in range(number+1):
numz = nums.append(i)
for g in range(len(nums)):
numb = nums[g]
您在这里所做的是遍历列表并将项目逐一分配给变量。在每一轮中,变量都会被覆盖。
因此,当循环终止时,仅分配的值是列表中的最终值。
如果您需要 return
一个数字序列,您可以使用 eval
函数实现您的代码。但是返回值是字符串,而不是整数。由于您只是退货,所以这不是问题。
def numbers_range(number):
x =0
s =''
while x<=number:
# if you don't need a new line replace '\n' with a space ' ' .
s =(s+str(x)+"\n")
x =x+1
numb = eval("print(s)")
return numb
使用函数时,
print(numbers_range(5))
输出
0
1
2
3
4
5
希望这能回答您的问题。
我正在制作一个从 0 到某个数字输入的函数我尝试使用 print 实现它并且有效但输出需要是一个 return 值所以我尝试制作一个列表然后迭代通过它使用 for 循环并 return 使用列表的索引返回列表的每个值但这不起作用它只 returns 列表的最后一个值我还想要 return将值设为字符串,而不是列表。
这是我的代码
nums = []
def numbers_range(number):
for i in range(number+1):
numz = nums.append(i)
for g in range(len(nums)):
numb = nums[g]
return numb
print(numbers_range(5))
结果 5 我想要的结果 0 1 2 3 4 5 请帮忙
所以我认为问题出在您对 range()
的使用上。根据我的经验,range()
需要像 range(min, max)
那样格式化,而你正在像 range(min)
.
我想你想要的会来自这段代码:
nums = []
def numbers_range(number):
for i in range(0, number+1):
numz = nums.append(i)
for g in range(0, len(nums)):
numb = nums[g]
return numb
print(numbers_range(5))
希望这对你有用!
您的包含变量 'g' 的 for 循环将值 1 放在同一个变量 numb 中的 next 之上。 基本上 numb 中的每个值都被列表中的新值覆盖。
改为这样做。
def numbers_range(number):
nums = []
for i in range(number+1):
nums.append(i)
ans = "".join([str(no) for no in nums])
return ans
print(numbers_range(5))
这里是代码,
我们正在创建一个名为 nums 的新列表。
然后我们从 0 遍历到数字并将每个值附加到列表中。
最终返回转换为字符串的列表。
一个解决方案是
def numbers_range(number):
ans = [str(i) for i in range(number+1)]
return " ".join(ans)
print(numbers_range(5))
另一个解决方案是
def numbers_range(number):
ans = []
for i in range(number+1):
ans.append(str(i))
return " ".join(ans)
print(numbers_range(5))
for i in range(number+1):
numz = nums.append(i)
for g in range(len(nums)):
numb = nums[g]
您在这里所做的是遍历列表并将项目逐一分配给变量。在每一轮中,变量都会被覆盖。 因此,当循环终止时,仅分配的值是列表中的最终值。
如果您需要 return
一个数字序列,您可以使用 eval
函数实现您的代码。但是返回值是字符串,而不是整数。由于您只是退货,所以这不是问题。
def numbers_range(number):
x =0
s =''
while x<=number:
# if you don't need a new line replace '\n' with a space ' ' .
s =(s+str(x)+"\n")
x =x+1
numb = eval("print(s)")
return numb
使用函数时,
print(numbers_range(5))
输出
0
1
2
3
4
5
希望这能回答您的问题。