【发布时间】:2013-03-07 23:26:49
【问题描述】:
如何管理包含 100+ 百万个字符串的庞大列表? 我该如何开始处理如此庞大的列表?
示例大列表:
cards = [
"2s","3s","4s","5s","6s","7s","8s","9s","10s","Js","Qs","Ks","As"
"2h","3h","4h","5h","6h","7h","8h","9h","10h","Jh","Qh","Kh","Ah"
"2d","3d","4d","5d","6d","7d","8d","9d","10d","Jd","Qd","Kd","Ad"
"2c","3c","4c","5c","6c","7c","8c","9c","10c","Jc","Qc","Kc","Ac"
]
from itertools import combinations
cardsInHand = 7
hands = list(combinations(cards, cardsInHand))
print str(len(hands)) + " hand combinations in texas holdem poker"
【问题讨论】:
-
处理 1 亿个字符串的最佳方法是将它们放入数据库中。但是这里可以避免枚举一亿个字符串。
-
你真的需要存储所有的手,还是迭代器可以工作?
-
我建议不要使用字符串。看起来您正在用 2 字节字符串表示卡片。您可以更有效地使用整数来表示每张卡片
-
我正在考虑将它们转换为 md5 并将它们存储在哈希表中以进行 qucik 查找,但我对 python 有点陌生,我想对它们做很多事情,将它们存储在磁盘上数据文件工作还是我必须求助于 sql db?嗯迭代器听起来不错我去了解更多关于这个谢谢。啊是的好主意 TJD,我可以使用数组,这在内存上要好得多!!!