当前位置: 首页 > 知识库问答 >
问题:

更新For循环中列表的内容

仰欣悦
2023-03-14

我有一个网络应用编程接口,多个列表,和一个从网络应用编程接口查询数据的函数。我已经设法手动更新列表,一次一个。然而,数据有多个列(列表将包含列的数据),并且有38个列表并手动调用函数来更新它们是很麻烦的。我设计了一个简短的for循环来迭代列表,并相应地更新它们。但是,更新后的列表不会返回;或者甚至没有更新。如何在代码中修复此问题?请参阅下面的代码,虽然我不能提供API上的数据:

# create df to contain cases
title_list = []
formalnotice = []
transVal = []
depDir = []

listDict = {
            'title_list': 'title', 
            'formalnotice': 'cfius_formalnoticesubmitted',
            'transVal': 'cfius_transactionvalue_base',
            'depDir': '_cfius_deputydirector_value'
            }

# access cases and pass to list - ?$select=title
def dataMiner(list1, colName):
    for obs in api.query('incidents')['value']:
        list1.append(obs[colName])
        return list1

dataMiner(title_list, 'title') # this works as intended

# below isn't updating the lists at the beginning of the code as expected
for l, t in listDict.items():
    l = []
    l = dataMiner(l, t)

==================================添加==========================

下面的for循环运行,但不返回任何内容:

for l, t in listDict.items():
    l = []
    dataMiner(l, t)

我的问题是:数据将流向何方?

共有1个答案

卢阳泽
2023-03-14

鉴于您的不可复制代码,您的期望是不清楚的,但是猜测您想要构建dataMiner输出的列表l,您可以使用:

l = [dataMiner(l, t) for l, t in listDict.items()]

当前方法在循环的每个步骤都覆盖变量l

 类似资料:
  • 下面的代码尝试迭代excel文件,并将数据加载到

  • 问题内容: 我目前有一些这样的代码: 我想发生的事情是for循环迭代并用其对应的字母替换任何大于10的值。但是,我当前的代码只是更改,而不是列表中的原始值。例如,如果设置为15,则代码始终运行并设置为,但不会更改为,而是保持为15。如何解决此问题? 问题答案: 对于循环的每次迭代,变量只会被分配一个项的值的副本,因此对所做的更改将不会反映在。 您应该更新可以通过以下函数生成的via索引项:

  • 我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码:

  • 问题内容: 我程序的想法是从以前保存在其他JFrame中的列表中选择一个名称。我想在标签中一个接一个地打印所有名称,它们之间的间隔很小,然后停在其中一个名称上。问题是,如果有多个代码,则无法正常工作。 这是我的代码的一部分: 问题答案: 不要使用循环或。只需使用即可。以下将导致每1000毫秒发生30 次迭代 。您可以相应地调整代码,使其适应每隔毫秒发生一次的情况。 如果需要,您可以在构造函数中设置

  • 我有一个两个项目的列表,每个项目是一个文本字符串。我想围绕这两个项目循环,如果一个单词不在一组单词中,则基本上删除它。但是,下面的代码将所有单词放在一起,而不是创建两个单独的项。我希望我的更新列表包含两个项目,每个原始项目对应一个im更新:

  • 我想在for循环中将列表写入csv文件,每次都在不同的列中。例如,第一次迭代生成一个list=[1,2,3,4,5],第二次迭代生成list=[1,2,3]。我想要输出。csv看起来像: 我得到了以下代码: 相反,输出看起来像这样: 上面所做的是继续编写第一列,并且在下一次迭代中不会更改为新列。如何让python这样做?