gpt4 book ai didi

Python - 一个干净的方法来解决这个问题?

转载 作者:太空狗 更新时间:2023-10-30 02:35:25 25 4
gpt4 key购买 nike

我在选择解决问题的最佳数据结构时遇到困难。

问题如下:

  1. 我有一个嵌套的身份代码列表,其中子列表的长度各不相同。

    li = [['abc', 'ghi', 'lmn'], ['kop'], ['hgi', 'ghy']]
  2. 我有一个文件,每行有两个条目;一个身份代码和一个数字。

    abc      2.93  
    ghi 3.87
    lmn 5.96

每个子列表代表一个集群。我想选择 i.d.从每个与其相关联的编号最高的子列表中,附加该 ID。到新列表并最终将其写入新文件。

读入带有数字的文件应该是什么数据结构?

此外,您将如何迭代所述数据结构以返回 i.d.具有与 i.d. 匹配的最高数字。在子列表中?

谢谢,小号:-)

最佳答案

您可以将文件读入字典 (string=>int),然后使用列表理解从每个子列表中获取最高身份代码。

d = {}
with open("data", 'rb') as data:
for line in data:
key, val = line.split(' ')
d[key] = float(val)

ids = [max(sublist, key=lambda k: d[k]) for sublist in li]

对于 Python 2.4,使用:

ids = []
for sublist in li:
subnums = map(lambda x: d[x], sublist)
ids.append(sublist[subnums.index(max(subnums))])

如前所述,这是 O(n)。

关于Python - 一个干净的方法来解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2958799/

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