如何停止在列表中放置元素
How to stop placing elements in list
我希望您创建一个向列表中添加元素的函数。当涉及到 range() 的边界时,我希望它停止
我明白了:
def get_values(i,n):
d =[]
for x in range(n):
d.append(next(i))
return d
i = iter(range(10))
print((get_values(i,5)))
print((get_values(i,4)))
print((get_values(i,2)))
It gives me:
[0, 1, 2, 3, 4]
[5, 6, 7, 8]
Traceback (most recent call last):
File "/Users/user/Documents/untitled1/lol.py", line 17, in <module>
print((get_values(i,2)))
File "/Users/user/Documents/untitled1/lol.py", line 4, in get_values
d.append(next(i))
StopIteration
但我想实现这个:
>>> i = iter(range(10))
>>> get_values(i, 3)
[0, 1, 2]
>>> get_values(i, 5)
[3, 4, 5, 6, 7]
>>> get_values(i, 4)
[8, 9]
>>> get_values(i, 4)
[]
如何控制循环以仅放入 i 的 range() 中的元素?
只听错误,有错误就停止迭代,跳出循环:
def get_values(i,n):
d =[]
for x in range(n):
try:
d.append(next(i))
except StopIteration:
break
return d
检查是否可以继续的唯一方法是监听 StopIteration
异常。这是我认为可以方便使用的另一个解决方案:
def get_values(i, n):
d = []
try:
for _ in range(n):
d.append(next(i))
finally:
return d
查找 https://www.geeksforgeeks.org/python-next-method/ 以了解有关可以传递给下一个语句的参数的更多信息
def get_values(i,n):
d =[]
for x in range(n):
temp=next(i,'end')
if temp=="end":
break
d.append(temp)
return d
i = iter(range(10))
print((get_values(i,5)))
print((get_values(i,4)))
print((get_values(i,2)))
输出
[0, 1, 2, 3, 4]
[5, 6, 7, 8]
[9]
我希望您创建一个向列表中添加元素的函数。当涉及到 range() 的边界时,我希望它停止 我明白了:
def get_values(i,n):
d =[]
for x in range(n):
d.append(next(i))
return d
i = iter(range(10))
print((get_values(i,5)))
print((get_values(i,4)))
print((get_values(i,2)))
It gives me:
[0, 1, 2, 3, 4]
[5, 6, 7, 8]
Traceback (most recent call last):
File "/Users/user/Documents/untitled1/lol.py", line 17, in <module>
print((get_values(i,2)))
File "/Users/user/Documents/untitled1/lol.py", line 4, in get_values
d.append(next(i))
StopIteration
但我想实现这个:
>>> i = iter(range(10))
>>> get_values(i, 3)
[0, 1, 2]
>>> get_values(i, 5)
[3, 4, 5, 6, 7]
>>> get_values(i, 4)
[8, 9]
>>> get_values(i, 4)
[]
如何控制循环以仅放入 i 的 range() 中的元素?
只听错误,有错误就停止迭代,跳出循环:
def get_values(i,n):
d =[]
for x in range(n):
try:
d.append(next(i))
except StopIteration:
break
return d
检查是否可以继续的唯一方法是监听 StopIteration
异常。这是我认为可以方便使用的另一个解决方案:
def get_values(i, n):
d = []
try:
for _ in range(n):
d.append(next(i))
finally:
return d
查找 https://www.geeksforgeeks.org/python-next-method/ 以了解有关可以传递给下一个语句的参数的更多信息
def get_values(i,n):
d =[]
for x in range(n):
temp=next(i,'end')
if temp=="end":
break
d.append(temp)
return d
i = iter(range(10))
print((get_values(i,5)))
print((get_values(i,4)))
print((get_values(i,2)))
输出
[0, 1, 2, 3, 4]
[5, 6, 7, 8]
[9]