如何将元素附加到Python字典中的列表中
我审查了那些帖子:还有。 他们没有帮助我。我想这样做:有一个如何将元素附加到Python字典中的列表中,python,list,dictionary,Python,List,Dictionary,我审查了那些帖子:还有。 他们没有帮助我。我想这样做:有一个result={}和spl=input().split(“”),我做了一些事情,结果变成了result={'text':[1,2]}(例如)。如何做到这一点 我试图在第一个链接中创建一个类似的东西:result.update({'text':result['text']+[1,2]}),但它没有起作用。我还尝试了第二个链接: result={'text':[]} 结果['text'].追加(1,2) 但它给了我一个错误Attribut
result={}
和spl=input().split(“”)
,我做了一些事情,结果变成了result={'text':[1,2]}
(例如)。如何做到这一点
我试图在第一个链接中创建一个类似的东西:result.update({'text':result['text']+[1,2]})
,但它没有起作用。我还尝试了第二个链接:
result={'text':[]}
结果['text'].追加(1,2)
但它给了我一个错误AttributeError:'str'对象没有属性'append'
。真正的代码部分,直到预期的部分在下面
守则:
def checkThru(txt,wordsDesc=1,countmorests=False,indexInOutput=False):
结果={}
spl=txt.split(“”)
badChars=['?'、'、'、'、'、'、'!'、]
wordam=列表(范围(0,wordsDesc))
对于范围内的lol(len(spl)):
对于badChars中的子语言:
spl[lol]=spl[lol]。替换(子语言“”)
对于spl中的i:
iinspl=spl.指数(i)
如果indexInOutput==True:
如果i=='are'或i=='am'或i=='is'或i=='were'或i==\
“是”或“我会”或“我会”:
如果spl[iinspl+1]=“a”或spl[iinspl+1]=“an”或\
spl[iinspl+1]==‘the’:
如果countMoreMost==False:
如果spl[iinspl+2]=“更多”或spl[iinspl+2]=“大多数”:
result.update({iinspl-1:[]})
对于加载项wordam:
result.update({spl[iinspl-1].append(iinspl+3+add)})#?????(这里的错误表示有问题。)
#实际上,spl[iinspl-1]将是一个列表,因为行
回溯:
Traceback (most recent call last):
File "D:\python\I MADE A MODULE!!! indeX.py", line 16, in <module>
print(indeX.checkThru('Hello, I am David. My sister is the most Ann babe', 1, False, True))
File "C:\Users\Danil\AppData\Local\Programs\Python\Python37-32\lib\indeX.py", line 287, in checkThru
result.update({spl[iinspl-1].append(iinspl+1+add)})
AttributeError: 'str' object has no attribute 'append'
您的代码:
result = {'text': []}
result['text'].append(1, 2)
不应给出AttributeError:“str”对象没有属性“append”
,除非在尝试追加之前将result['text']
的值定义为字符串
但是,append
不接受这样的两个参数。如果要将1
和2
添加到列表中,请执行以下操作之一:
result = {'text': []}
result['text'].append(1)
result['text'].append(2)
print(result)
印刷品:
{'text': [1, 2]}
{'text': [1, 2]}
或
印刷品:
{'text': [1, 2]}
{'text': [1, 2]}
你发布的第二个链接:
result={'text':[]}
结果['text'].追加(1,2)
…会有用的。您得到的错误是因为它所说的-您试图在字符串上运行append
您的spl
列表是由txt.split()
生成的字符串列表。您的代码:
result = {'text': []}
result['text'].append(1, 2)
spl[iinspl-1].append()
…因此将始终尝试附加到字符串,而这(正如您所发现的)不起作用
我想可能在这段代码中,您的意思是附加到结果
,而不是spl
编辑:否则您需要类似以下内容:
result[spl[iinspl-1].追加(iinspl+3+add))
可能是update而不是append,具体取决于其中的内容和您想要的内容。
result={'text':[]}
结果['text'].追加(1,2)
将给予
TypeError:append()只接受一个参数(给定2个)
因为append只接受一个参数。不是你提到的那个
如果不想返回列表的列表,一种方法是逐个元素追加元素。
result={'text':[]}
结果['text']。追加(1)
结果['text']。追加(2)
结果
{'text':[1,2]}
将给出所需的结果
或者改用update
。语法似乎很好:
result.update({'text':[1,2]})
结果
{'text':[1,2]}
话虽如此,
快速查看代码后:
True
,这样您的结果
字典就会被修改,请检查一次False
开始,代码所做的检查与True
相对应,因此它不会出现。程序将在首次检查自身后退出{注意:一次代码的试运行将打印语句,这有助于您正确理解逻辑}如果您能把问题缩小一些,那就太好了。请加上追踪。哪些行导致AttributeError?运行您的代码:
结果['text']。append(1,2)
给我类型错误:append()只接受一个参数(2)
,而不是您发布的AttributeError
。append(1,2)只是一个示例当我这样做时,准确的示例将对回答您的问题有更大帮助:结果[iinspl-1]+=spl(iinspl+1+add)
,它输出:类型错误:“list”对象不可调用
它看起来像是基于错误的列表。所以你不能像spl(args)
那样调用它。当我使用result[spl[iinspl-1]].update({iinspl-1:[iinspl+1+add]})时,
使用print(indeX.checkThru('Hello,我是大卫。我妹妹是最可爱的安宝贝,'1,False,True))
它输出:keyrorm:'I'
,因为spl[iinspl-1]
='I'
但我会尝试你刚才说的话。我尝试过这样做:结果。更新({spl[iinspl-1]:[iinspl+2+add]})
但它不起作用(((出于某种原因,它输出:TypeError:'int'对象不可写