gpt4 book ai didi

python - python中的列表操作

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:57 25 4
gpt4 key购买 nike

我有一个包含子列表的列表。 EG: ([1, 2], [1, 56], [2, 787], [2, 98], [3, 90]) 是在运行时附加值创建的一个for循环。

我在 python 中工作,我想在第一个元素相同的每个子列表中添加第二个元素。在我的例子中:我想添加 2+56(两者的第一个索引均为 1)、787+98(两者的第一个索引均为 2)并保持 90 不变,因为只有一个元素的第一个索引为 3。

我不知道该怎么做。

这是我的代码:

import urllib, re
from itertools import groupby
import collections
import itertools, operator
text = urllib.urlopen("some html page").read()
data = re.compile(r'.*?<BODY>(.*?)<HR>', re.DOTALL).match(text).group(1)// storing contents from the BODY tag
values = [line.split() for line in data.splitlines()] //List with the BODY data
/* values contain elements like [[65, 67], [112, 123, 12], [387, 198, 09]]
it contains elements with length 2 and three.
i am just concerned with elements with length 3
in the for loop, i am doing this, and passing it to 2 functions.*/

def function1 (docid, doclen, tf):
new=[];
avgdoclen = 288;
tf = float(x[2]);
doclen = float(x[1]);
answer1 = tf / (tf + 0.5 + (1.5*doclen/avgdoclen));
q = function2(docid, doclen, tf)
production = answer1 * q //this is the production of
new.append(docid) // i want to add all the production values where docid are same.
new.append(production)
return answer1

def function2 (docid, doclen, tf):
avgdoclen = 288;
querylen = 12;
tf= float(x[2]);
answer2 = tf/(tf + 0.5 + (1.5*querylen/avgdoclen));
return answer2

for x in values:
if len(x)==3:
okapi_doc(x[0], x[1], x[2])
okapi_query(x[0], x[1], x[2])

我想添加所有 docid 相同的生产值。现在当我打印新的时,我得到以下输出:

['112', 0.3559469323909391]
['150', 0.31715060007742935]
['158', 0.122025819265144]
['176', 0.3862207694241891]
['188', 0.5057900225015092]
['236', 0.12628982528263102]
['251', 0.12166336633663369]

这不是一个列表。当我打印 new[0][0] 时,我得到 1。当我打印 new[0][0] 时,我想得到 112。追加有什么问题吗? ['334', 0.5851519557155408]

最佳答案

这很简单。 dict.get(key, default) 如果键存在则返回值,否则返回默认值。

totals = {}
for k,v in data:
totals[k] = totals.get(k, 0) + v

关于python - python中的列表操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9145560/

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