如何将元素附加到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]}

话虽如此, 快速查看代码后:

  • 所有决策都是通过if条件触发的(仅当嵌套块时),因此所有决策都应该是
    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'对象不可写