【问题标题】:What is the best way compare strings?比较字符串的最佳方法是什么?
【发布时间】:2020-08-30 14:25:23
【问题描述】:

如果我有一个包含 2000 个字符串的数据库,假设其中 3 个是: “黄色” “蓝色的” “红”

我需要以某种方式为所述数据库中的每个项目分配值,然后比较它们。例如,如果比较“黄色”和“蓝色”,我希望 Python 输出其中一个更大。值显然是手动分配的,但我想不出一种方法来为程序提供比较结果。

现在我正在考虑将每个字符串编码为一个变量并为其分配一个数字,所以如果我分配: 蓝色 = 6 红色 = 5 它会告诉我蓝色高于红色,但我不确定它是否有效,特别是如果大约 2000 个字符串会变成变量。

【问题讨论】:

  • 不清楚是什么定义了字符串的优先级
  • 字符串已经具有可比性...
  • 在优先级队列中粘贴值会很有效,但如果没有一些编号系统,我认为您会忘记已添加的值
  • 2000 个变量对计算机来说不是问题,我们不再需要仅使用几千字节的工作内存。输入这些作业需要做很多工作,但你说这就是你要做的。如果文件中已经有数字,则可以将它们读入 Python 字典,但如果手动键入它们,实际上与将它们设为变量没有什么不同。

标签: python string


【解决方案1】:

不要设置 2000 个变量。使用dict。例如:

>>> wordlist =  ["yellow", "blue", "red"]  
>>> mydict = dict(zip(wordlist, range(2000)))
>>> mydict
{'yellow': 0, 'blue': 1, 'red': 2}

您如何实际构建wordlist 取决于您的数据库是什么样的,因此我无法就此提供建议。您也没有说明如何得出这些值。如果您希望单词按字母升序排列(如"blue" < "red" < "yellow"),请先对它们进行排序:

>>> wordlist.sort()
>>> wordlist
['blue', 'red', 'yellow']

dict 中检索一个值,如myvalue=mydict["yellow"]非常高效的。

【讨论】:

    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多