我希望在我遇到的python编码障碍中获得一些帮助。 当前的任务是将数千行CSV整理到一组列表中。我的CSV是2列。第一列是PC名称。第二列是建筑。 我可以使用Excel筛选,但要查看900多个建筑物清单,并用10k +台PC进行排序和分配,这将带来很大的挑战,而没有excel自动化。 所以我转向了Python。自从我上次接触它是8年前,我就感到非常生锈。我的想法是: 1)我可以将建筑物作为我在开始时声明的大量清单的参考。
Bldng1[]
Bldng2[]
Bldng3[]
2)我可以将包含第一列的2列CSV导出为PC,将第二列的CSV导出为Python字典JSON格式。 myPCs = { “ PC1”:“ Bldng1”, “ PC2”:“ Bldng2”, “ PC3”:“ Bldng1”, “ PC4”:“ Bldng1”, “ PC5”:“ Bldng3”,
}
3)在字典中遍历一个for循环。
对于my_PC中的PC: bldng = myPCs [pcs]#本质上将建筑物名称添加到变量中 print('Building name',bldng)#验证我的名字正确
但是我不知道现在如何将PC名称添加到建筑物列表中,因为建筑物和PC名称会随着每次迭代而改变。 我尝试过:
bldng.append = ['pcs']
认为该变量将使用建筑物名称填充,但是没有用。 关于我要去哪里或需要做什么的任何建议?我真的很讨厌做excel宏,并且很想提高我的Python技能。
基本上... 我有一组空清单
Bldng1[]
Bldng2[]
Bldng3[]
#A dictionary
myPCs={
"PC1": "Bldng1",
"PC2": "Bldng2",
"PC3": "Bldng1",
"PC4": "Bldng1",
"PC5": "Bldng3",
}
#And I want to achieve this:
Bldng1['PC1','PC3',"PC4']
Bldng2['PC2']
Bldng3['PC5']
提前谢谢!! 我已经尝试使用Google搜索,并尝试了建议的方法,但找不到适合我需求的解决方案
以下代码:
Bldng1[]
Bldng2[]
Bldng3[]
myPCs={
"PC1": "Bldng1",
"PC2": "Bldng2",
"PC3": "Bldng1",
"PC4": "Bldng1",
"PC5": "Bldng3",
}
for pcs in my_PCs:
bldng=myPCs[pcs]
bldng.append=['pcs']
Error
bldng.append=['pcs']
AttributeError: 'str' object has no attribute 'append'
答案 0 :(得分:0)
您的bldng.append
行的语法不正确。 append
是您要调用的函数,带有要附加的值:
bldng.append(value)
在您的for
循环中,您仅迭代myPCs
字典的键。您需要的是myPCs
中的值。因此,将其与append函数一起使用将如下所示:
for key, value in myPCs.items():
bldng.append(value)
哪些可以为您提供bldng
的这些值:
bldng == ["Bldng1", "Bldng2", "Bldng1"]
答案 1 :(得分:0)
我一直在摆弄直到我以某种方式使它起作用。我现在找不到它的链接,但是另一位用户的解决方案建议为该组列表创建一个字典,这将使我可以轻松地追加。
bldngs={
"Bldng1":[],
"Bldng2":[],
"Bldng3":[]
}
myPCs={
"PC1": "Bldng1",
"PC2": "Bldng2",
"PC3": "Bldng1",
"PC4": "Bldng1",
"PC5": "Bldng3",
}
for pcs in myPCs:
print('this is the pc',pcs)
bldng=myPCs[pcs]
print('this is the building',bldng)
bldngs[bldng].append(pcs)
print(bldngs)