我对编程非常陌生(现在开始学习我的第一堂课),所以请关注我的格式问题和误解,或者错过简单的修复。
我有一个带有推文数据的词典:'user'作为键,然后'text'作为它们的值。我的目标是找到他们回复另一个用户的推文,以@符号开头表示,然后创建一个包含作者用户和他回复的每个用户的新词典。这是我在下面的相当简单的陈述。我还能够使用split函数来隔离他们回复的人的用户名(该函数接受@符号和后面的下一个空格之间的所有文本)。 <击> 撞击>
<击>st='@'
en=' '
tweets1={}
for t in a,b,c,d,e,f,g,h,i,j,k,l,m,n:
if t['text'][0]=='@':
print(t['user']),print(t['text'].split(st)[-1].split(en)[0])
tweets1(user,repliedto)=(t['user'],t['text'].split(st)[-1].split(en)[0])
击> <击> 撞击>
st='@'
en=' '
task1dict={}
for t in a,b,c,d,e,f,g,h,i,j,k,l,m,n:
if t['text'][0]=='@':
user=t['user']
repliedto=t['text'].split(st)[-1].split(en)[0]
task1dict[user]=[repliedto]
Username1回复了username2。 Username2回复了username3和username5。
我正在尝试创建一个类似于:
的字典(caled tweets1)'user':'repliedto'
username1:[username2]
username2:[username3, username5]
等
<击> 撞击>
<击>我遇到的问题是使用以下行:
tweets1(user,repliedto)=(t['user'],t['text'].split(st)[-1].split(en)[0])
我收到错误代码“SyntaxError:无法分配给函数调用”。 我尝试了不同的代码变体试图获得相同的结果,但没有找到一种有效的方法,可能是因为使用了split函数。
击><击> 撞击>
有没有更好的方法来隔离用户名,然后将它们放入新的dict中?以下是推文数据的2个条目样本:
{"user":"datageek88","text":"@sundevil1992 good question! @joeclarknet Is this on the exam?"},
{"user":"joeclarkphd","text":"Exam questions will be answered in due time @sundevil1992"}
我现在可以将它们添加到dict中,但它只会为每个'用户'保存一个'repliedto',所以不是显示username2已经回复了3和5,它只显示最新的一个,5 :
{'username1': ['username2'],
'username2': ['username5']}
再说一遍,如果我在这里做任何严肃的禁忌,我道歉,请告诉我我做错了什么!
感谢。
答案 0 :(得分:1)
您正在使用括号,您应该使用方括号:
tweets1[user,repliedto] = (t['user'],t['text'].split(st)[-1].split(en)[0])
答案 1 :(得分:0)
这一行具有函数调用的形式:
tweets1(user,repliedto)=...
你不能分配给它。
tweets1
是一本字典,你应该使用方括号[]