python小白 自学 使用open()函数报错

import  requests
from lxml import etree
headers ={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}
r = requests.get('https://book.douban.com/subject/34857216/comments/',headers=headers)
t=r.text
#print(t)
s=etree.HTML(t)
f=(s.xpath('//div[@class="comment"]/p/span/text()'))     #手写
with open('pinglun.txt','w',encoding='utf-8')as d:
   for i in f:
    print(i)
    f.write(i)

运行时报错: f.write(i)
AttributeError: 'list' object has no attribute 'write'
图片说明
请问这个是啥原因导致的? 请各位大神指教

f.write(i)
->
d.write(i)

报错信息告诉你,列表没有write()方法。从这个入手开心想问题,你一去查write()方法的相关信息,你会发现write()方法是向文件写入一个字符串或者是字节流,而不是写入列表,这就是你错的原因。