好的我想要的是删除每个较小元组中的第一个元素,并将它们分成两个新元组:(2,3)和(5,6)。
a = ((1,2,3),(4,5,6))
def remove_1(tup):
for r in tup:
r = r[1:]
return (r)
def remove_2(tup):
for r in tup:
r = r[1:]
print(r)
>>>remove_1(x)
(2, 3)
>>> remove_2(x)
(2, 3)
(5, 6)
为什么remove_1
和remove_2
会给出不同的结果,remove_2
能够处理A中的第二个元组但remove_1
不能处理?
如何让remove_1
返回两个元组:
(2,3)
(5,6)
答案 0 :(得分:2)
原因是return
导致函数立即返回。循环立即停止,函数中不再运行代码。
另一方面,print语句只是将结果打印到屏幕上。允许循环继续处理所有项目。
在交互式运行时,似乎return
和print
是同义词,但它们非常非常不同。你会看到return
"打印"只是因为你在交互式环境中运行。
如何让remove_1返回两个元组:
一种方法是创建一个变量来保存中间结果,然后在循环结束时返回。请注意,以下代码中return
在之外循环。
def remove_1(tup):
result = []
for r in tup:
r = r[1:]
result.append(r)
return tuple(result)
答案 1 :(得分:1)
我需要更改什么才能让remove_1返回两个元组?
试试这个:
def remove_1(tup):
result = []
for r in tup:
result.append(r[1:])
return result
如果你想返回一个元组,你可以改为return tuple(result)
。