【问题标题】:Looping over dictionary and append list循环遍历字典和追加列表
【发布时间】:2020-08-22 09:50:44
【问题描述】:

我有超过 100 个清单要制作。 我怎样才能只做一个然后循环它们? 它比通常的字典循环更复杂。

list(i)=[]
for a in dict(i)['a']:
    d={}
    d['A']=string
    list(i).append(d)
list(i) = pd.DataFrame(list(i))
list(i)['Link'] = df['link'][i-1]
list(i)['Caption'] = df['caption'][i-1]
list(i)['Family_Type']=df['family_type'][i-1]
list(i)['Product_Type']=df['product_type'][i-1]
list(i).to_excel('list'+str(i).xlsx')

Variable Types:
print(type(dict1)) --> dict
print(type(dict1['a'])) --> list
print(type(string)) --> str
print(type(list1)) --> list

编辑尝试过的代码:

d2 = {}
for i in range(1,100):
    d["list{0}".format(i)]=[]
        for i in range(1, 100):
            d["list{0}".format(i)] = comment.text
            d["list{0}".format(i).append(d2)
    d["list{0}".format(i)] = pd.DataFrame(d["list{0}".format(i)])
    d["list{0}".format(i)]['Link'] = df['link'][i-1]
    d["list{0}".format(i)]['Caption'] = df['caption'][i-1]
    d["list{0}".format(i)]['Family_Type'] = df['family_type'][i-1]
    d["list{0}".format(i)]['Product_Type'] = df['product_type'][i-1]
    d["list{0}".format(i)].to_excel('list'+str(i).xlsx')

返回错误

【问题讨论】:

  • 只需编写一个for 循环并将您的代码副本放入其中。
  • 请查看修改后的内容。我对复杂循环有疑问。
  • 查看您的代码:2 次 for i in 和糟糕的缩进,曾经徘徊将 "list{0}".format(i) 提取到变量中。 d["list{0}".format(i).append(d2) 是非法python,你想在所有情况下共享同一个dict d2
  • 对不起,但这是我作为初学者的最大努力。请提出修改建议。
  • 你有一个问题,因为你使用相同的i 变量来表示两个不同的东西。使用有意义的变量名。

标签: python python-3.x list dataframe dictionary


【解决方案1】:
for i,_ in enumerate(df['link'], 1):
    listi = pd.DataFrame( [{'A':string} for a in locals()[f"dict{i}"]['a'] ] )
    listi['Link']=df['link'][i-1]
    listi['Caption']=df['caption'][i-1]
    listi['Family_Type']=df['family_type'][i-1]
    listi['Product_Type']=df['product_type'][i-1]
    listi.to_excel(f'list{i}.xlsx')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2014-06-27
    • 2019-07-10
    • 2016-08-31
    • 2020-11-07
    • 1970-01-01
    相关资源
    最近更新 更多