gpt4 book ai didi

python - 无法访问 Python 列表中的元素

转载 作者:太空宇宙 更新时间:2023-11-04 10:08:06 27 4
gpt4 key购买 nike

我使用双字母组和单字母组。

我的二元组是元组的计数器,我的一元组是一个列表,其中

 uni['some key']=count

我正在尝试做以下事情

 for b,countB in bigrams.most_common()
key=b[0] # this is guaranteed to be a key for my unigrams
uniCount=uni[key]

出现以下错误:

 TypeError: tuple indeces must be integers or slices, not str

我很困惑。为什么这是个问题? uni 本质上是一个散列,它的键值是字符串。如何访问 u[key]?

编辑:完整代码

 # corpus is a string containing my corpus
sp=corpus.split()

uni={}
for t in sp:
try:
uni[t]+=1
except:
uni[t]=0
prev=''
big=[]
for t in sp:
tup=(prev,t)
big.append(tup)
prev=t

bigrams=collections.Counter(big)

for b,countB in bigrams.most_common():
key=b[0]
uniCount=uni[key]

最佳答案

当您可能需要字典时,您正在犯使用元组的错误。作为错误消息状态,元组不能由字符串键索引 - 您应该使用数字索引。

dict 可以让您按照自己的意愿使用字符串键。

d = {}
d['some key] = 23

更新后的代码让您更清楚自己在做什么。您首先在 uni 中创建字数统计字典。我认为那一行是

uni[t] = 0

实际上应该阅读

uni[t] = 1

因为执行该分支时,您正在检测单词的第一次出现。接下来,您在 big 中创建一个二元组列表,然后计算这些二元组。

不过,我对最后的 for 循环有点迷茫,其中 b 将是 Counter 项的键,而 countB 为计数。所以 key 将是二元组的第一个单词,而 uniCount 将是该单词在语料库中出现的次数。确定了这些值后,您可以继续对它们执行任何操作,并继续处理下一个最常见的二元语法。

也许是时候在最后一个循环中打印一些东西了?以其他方式发布的代码看起来很合理。

关于python - 无法访问 Python 列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39854455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com