我有一个循环
y = [1,2,3,4,5,6,7]
for x in y:
if x == 3:
return(x)
elif x == 4:
return(x)
elif x = 6:
return(x)
else:
return('not found')
我不想打印数据,我只想返回数据,如果数据被返回,有没有办法一次性处理所有这些返回的数据?
答案 0 :(得分:0)
首先,您遇到语法错误:
它应该是elif x == 6:
,因为=
是赋值运算符,而==
是比较运算符,而您正在尝试比较,而不是分配。
接下来,您需要将for
循环放在函数中,以便return
一个值。 return
只能在函数内部使用。否则,它返回语法错误。因此,创建一个函数并在其中插入for
循环:
def function (y):
for x in y:
if x in {3,4,6}:
return (x)
else:
return ('not found')
然后,您需要在y
上调用该函数。像这样:
function(y)
目前还不清楚“将所有此类返回数据一次处理为列表”的含义。无论如何,如果您想要将所有返回的数据存储在列表中,则创建一个空列表并将每个返回值function
附加到空列表中。像这样:
def function (y):
emptyList = []
for x in y:
if x in {3,4,6}:
emptyList.append(x)
else:
emptyList.append("not found")
return emptyList
如果您能提供更清晰的问题,我会根据您的需求进行编辑!
答案 1 :(得分:0)
如果我理解正确,你有一个数字列表,并希望将某些值返回到单独的列表[3,4,6]应该在一个单独的列表中。我假设你不想从原始列表中删除这些值(使用remove方法),但希望将它们保留在原始列表中,并将它们添加到另一个列表中。以下是一个例子:
y = [1, 2, 3, 4, 5, 6, 7]
z = []
for x in y:
if x == 3:
z.append(x)
if x == 4:
z.append(x)
if x == 6:
z.append(x)
1。我们创建了一个存储一系列数字的y列表。 2.我们创建一个空列表,用于存储要存储在单独列表中的值。 3.我们开始for循环。 x将是列表中每个单独数字的变量,因为我们迭代列表中的每个值,y是您的列表。 4.如果值== 3,我们可以附加到空列表,而不是返回,以便将该特定值存储在列表中。我们将在单独的列表中为您想要的每个值运行if语句,然后我们将该值附加到新列表。 5.结果是你得到z = [3,4,6],这是一个新列表,其中包含你想要存储在新列表中的原始列表中的值。
答案 2 :(得分:0)
以下代码将为上述问题提供解决方案......
def createGenerator(new_list, comp_list):
for i in new_list:
if i in comp_list:
yield i
comp_list = [4,5,6]
new_list = range(10) # Written for generic (can pass any list here )
mygenerator = createGenerator(new_list, comp_list)
for i in mygenerator:
print i
4
5
6
def createGenerator(y):
for i in y:
if i in [4,5,6]:
yield i
y = range(10)
mygenerator = createGenerator(y)
for i in mygenerator:
print i
output:
4
5
6
答案 3 :(得分:-2)
y = [1,2,3,4,5,6,7]
result = []
for x in y:
if x == 3:
result.append(x)
elif x == 4:
result.append(x)
elif x == 6:
result.append(x)
else:
# or pass if you want to ignore
result.append(None)
return result