Python 如何将元素添加到“for”循环内的列表中?
这里有一个严重的大脑放屁时刻,因为我可以发誓这个代码以前工作正常 鉴于以下情况:Python 如何将元素添加到“for”循环内的列表中?,python,python-3.x,list,Python,Python 3.x,List,这里有一个严重的大脑放屁时刻,因为我可以发誓这个代码以前工作正常 鉴于以下情况: data = response.json() for result in data['results']: for field in result['custom_fields']: if field['id'] == some_id_field: print(field['value']) 返回: 11111 22222 33333 44444 55555 666
data = response.json()
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
print(field['value'])
返回:
11111
22222
33333
44444
55555
66666
77777
但是,我想将输出作为列表存储在单独的变量中,以便稍后使用,所以我这样做了:
data = response.json()
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
var_for_later = field['value']
var_for_later = var_for_later.splitlines()
var_for_later = var_for_later
但是,它只返回数组中的第一个元素
11111
而不是['11111','22222','33333','44444','55555','66666','77777']
我可以发誓上面的代码曾经是输出,直到我想测试一些东西,今天再次运行代码,看到它只返回一个值
为什么字段['value']现在只存储分配给变量时的第一个元素?您将值分配给变量,而不是将其附加到列表中。为了在列表中存储值,您需要更新代码,在for循环之前创建一个空列表,并使用list.append方法将字段['value']追加到列表中。因此,您的代码将成为:
data = response.json()
my_list = [] # creating empty list
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
my_list.append(field['value']) # Appending items to the list
它将以所需格式返回my_list as list,如下所示:
[11111, 22222, 33333, 44444, 55555, 66666, 77777]
试试这个:
yourdata=[]
data=response.json
对于数据中的结果['results']:
对于结果中的字段['custom_fields']:
如果字段['id']==某个\u id\u字段:
yourdata.appendfield['value']
打印您的数据
我猜您对Python还很陌生,所以我建议您观看一些教程或在internet上搜索文档。例如
为什么你的代码不起作用?
看看这行代码:var\u for\u later=var\u for\u later它完全不起作用。此外,在每个迭代的后面,您将覆盖var_。因此,从技术上讲,它最终应该返回“77777”,而不是“11111”
您确定这是与此代码对应的输出吗
顺便说一句,您真的有多个具有相同id的入口吗?之前您一次打印一个字段,但随后开始在每个循环中替换相同的变量,这就是为什么它只有一个值。var_for_later仅存在于该for循环中。而不是在循环外创建最终列表,并在每次迭代中附加值
out = []
data = response.json()
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
out.append(field['value'])
var_for_later=field['value']var_for_later=var_for_later.splitlines var_for_later=var_for_later这里发生了什么?您正在将新值存储到var_以备以后使用。您是否正在寻找var_for_later=[]var_for_later.appendtil。也谢谢你@Rafael: