回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试将列表写入csv文件。
我面临几个问题。在</p>
<ol>
<li>写入程序=作家.csv(f) AttributeError:“list”对象没有属性“writer”</li>
</ol>
<p>我用这个<a href="https://stackoverflow.com/questions/5618878/how-to-convert-list-to-string">link</a>来解决它,它起作用了,只打印了第二个for而没有编写第一个和第三个for。在</p>
<p>这是<a href="https://stackoverflow.com/users/7181046/gumboy">@gumboy</a>编写的代码</p>
<pre><code>csv = [['1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'], ['2', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0'], ['3', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0']]
csvdict = {words[0]:words[1:] for words in csv}
for x in csvdict.keys(): # iterate over the keys '1', '2', ....
products = [index+1 for index,v in enumerate(csvdict[x]) if v == '1' ] # create list of purchases where the '1's are indexed
print ("costummer", x, "buy", products)
</code></pre>
<p>其思想是用列表索引替换包含1的list。这个问题已经解决了。当我使用上面的链接来解决第一个问题时,代码运行,但没有写入csv文件。
我试图将第一个问题的解决方案与@gumboy代码相结合,下面是代码:</p>
^{pr2}$
<p>就像我上面提到的,代码正在工作,但是只打印第二个,而没有打印第一个和第三个元素。在</p>
<p><strong>打印功能与在csv文件上写入的内容:</strong>
打印:</p>
<pre><code>costummer,1,buy,[12, 22]
costummer,2,buy,[8, 12, 38, 46]
costummer,3,buy,[4, 34, 43]
</code></pre>
<p>csf文件:</p>
<pre><code>costummer,2,buy,[8, 12, 38, 46]
</code></pre>