Package: randdic
The explanations in English, Simplified Chinese, and Spanish are provided below.下面提供了英语、简体中文和西班牙语的说明。Las explicaciones en inglés, chino simplificado y español se proporcionan a continuación.日本語版解説（Japanese Version）randdic ドキュメント概要randdicは、Pythonの辞書のように使えるデータ構造で、高速な乱択を実現するためのライブラリです。Pythonの標準辞書と同様の機能を保持しつつ、乱択に関して大幅にパフォーマンスが向上しています。特徴高速なkeyの乱択が可能。Pythonの辞書とほぼ同じ機能を持っています。「追加や削除が頻繁に行われるデータセット」から乱択をしたい場合に有用です。内部ハッシュテーブルにアクセス可能です。Pythonの標準ハッシュ機能を利用しています。使用例importranddic# 辞書の初期化rd=randdic({"りんご":23,"バナナ":47})# 要素のアクセスprint(rd["りんご"])# -> 23# 主な機能: ランダムなキーの選択（非常に高速です）print(rd.rand())# ランダムなキーを選択します# その他の辞書機能print(rd)# randdicの表示print(rd.get("なし",0))# -> 0rd["さくらんぼ"]="何らかの値"# 要素の書き込みforkinrd:# for文での利用print(f"key ={k}, value ={str(rd[k])}")print(len(rd))# randdicの要素数delrd["りんご"]# 要素の削除print("りんご"inrd)# keyの存在確認print(rd.keys())# キー一覧の表示print(rd.items())# キー・値一覧の表示print(rd.values())# 値の表示print(rd==randdic())# 等価性のチェックrd.update({"バナナ":48})# 要素の更新# 発展的な使い方print(rd.table)# 内部ハッシュテーブルの取得idx,found_flag=rd._get_idx("りんご")# キーに対応する内部インデックスの検索importrandomr=random.Random()print(rd.rand(r))# ローカルの乱数生成器を使うことが可能注意点キーとして使用するオブジェクトはハッシュ化可能で、等価性（eq）メソッドを持っている必要があります。キーの順序は挿入順に保存されず、擬似ランダムです。English Versionranddic DocumentationOverviewranddicis a Python library that provides a dictionary-like data structure capable of performing high-speed random key selection. It mirrors the functionality of a standard Python dictionary but with a notable improvement in the efficiency of choosing a key at random.FeaturesHigh-speed random key selection.Retains most functionalities of the Python dictionary.Ideal for data sets that undergo frequent insertions and deletions requiring quick random selection.Can be used as a starting point for implementing key-value data structures like databases where internal table access can be complex with default Python dictionaries.Provides access to the internal hash table.Utilizes standard Python hashing, so objects that do not haveeqandhashcannot be used as keys.Keys are stored in an order that is random rather than insertion order, unlike newer Python versions.Usage Exampleimportranddic# Dictionary initializationrd=randdic({"apple":23,"banana":47})# Element accessprint(rd["apple"])# -> 23# Main Feature: Select a random key (operation is very fast)print(rd.rand())# Selects a random key# Other dictionary functionalitiesprint(rd)# Displays the randdicprint(rd.get("pear",0))# Default value for missing key -> 0rd["cherry"]="some_value"# Element writeforkinrd:# Iterationprint(f"key ={k}, value ={str(rd[k])}")print(len(rd))# Length of the randdicdelrd["apple"]# Element deletionprint("apple"inrd)# Membership checkprint(rd.keys())# Keys viewprint(rd.items())# Items viewprint(rd.values())# Values viewprint(rd==randdic())# Equality checkrd.update({"banana":48})# Element update# Advanced Usage: Interacting with the internal hash tableprint(rd.table)# View the internal hash tableidx,found_flag=rd._get_idx("apple")# Locate internal index for a keyimportrandomr=random.Random()print(rd.rand(r))# Pass a local random generatorImportant NotesEnsure the objects used as keys are hashable and have an equality (eq) method.The order of keys is not preserved as per insertion but is pseudo-random.When updating or deleting, the operation performance is optimized for speed.简体中文版说明（Simplified Chinese Version）randdic 文档概述randdic是一个类似于Python字典的数据结构，它是为了实现高效的随机选择而设计的库。它保留了Python标准字典的功能，同时在随机选择方面性能大幅提升。特点可以快速随机选择键（key）。具备与Python字典几乎相同的功能。如果您需要从“经常添加或删除的数据集”中进行随机选择，这个库非常有用。可以访问内部哈希表。使用Python的标准哈希功能。使用示例importranddic# 初始化字典rd=randdic({"苹果":23,"香蕉":47})# 访问元素print(rd["苹果"])# -> 23# 主要功能：随机选择一个键（非常快速）print(rd.rand())# 选择一个随机键# 其他字典功能print(rd)# 显示randdicprint(rd.get("不存在",0))# -> 0rd["樱桃"]="某个值"# 写入元素forkinrd:# 在for循环中使用print(f"key ={k}, value ={str(rd[k])}")print(len(rd))# randdic的元素数量delrd["苹果"]# 删除元素print("苹果"inrd)# 检查键是否存在print(rd.keys())# 显示所有键print(rd.items())# 显示所有键值对print(rd.values())# 显示所有值print(rd==randdic())# 检查等价性rd.update({"香蕉":48})# 更新元素# 高级用法print(rd.table)# 获取内部哈希表idx,found_flag=rd._get_idx("苹果")# 搜索键对应的内部索引importrandomr=random.Random()print(rd.rand(r))# 可以使用本地随机数生成器注意事项作为键的对象必须是可哈希的，并且具有等价性（eq）方法。键的顺序不是按插入顺序保存的，而是伪随机的。Versión en Español (Spanish Version)Documentación de randdicResumenranddices una biblioteca diseñada para Python que proporciona una estructura de datos similar a un diccionario, optimizada para una selección aleatoria rápida. Mantiene las mismas funcionalidades que un diccionario estándar de Python, pero con un rendimiento significativamente mejorado en cuanto a la selección aleatoria de elementos.CaracterísticasPermite la selección aleatoria de claves de forma rápida.Posee casi las mismas funcionalidades que un diccionario de Python.Es útil para conjuntos de datos en los que se realizan adiciones y eliminaciones con frecuencia.Permite el acceso a la tabla hash interna.Utiliza la función hash estándar de Python.Ejemplos de Usoimportranddic# Inicialización del diccionariord=randdic({"manzana":23,"plátano":47})# Acceso a los elementosprint(rd["manzana"])# -> 23# Funcionalidad principal: selección de una clave aleatoria (muy rápida)print(rd.rand())# Selecciona una clave al azar# Otras funcionalidades del diccionarioprint(rd)# Muestra el randdicprint(rd.get("inexistente",0))# -> 0rd["cereza"]="algún valor"# Escritura de un elementoforkinrd:# Uso en bucle forprint(f"clave ={k}, valor ={str(rd[k])}")print(len(rd))# Número de elementos en randdicdelrd["manzana"]# Eliminación de un elementoprint("manzana"inrd)# Verificación de la existencia de una claveprint(rd.keys())# Muestra la lista de clavesprint(rd.items())# Muestra la lista de pares clave-valorprint(rd.values())# Muestra los valoresprint(rd==randdic())# Comprobación de igualdadrd.update({"plátano":48})# Actualización de un elemento# Usos avanzadosprint(rd.table)# Obtención de la tabla hash internaidx,bandera_existencia=rd._get_idx("manzana")# Búsqueda del índice interno correspondiente a una claveimportrandomr=random.Random()print(rd.rand(r))# Posibilidad de usar un generador de números aleatorios localPuntos a tener en cuentaLos objetos que se utilizan como claves deben ser susceptibles de hash y deben tener un método de igualdad (eq).El orden de las claves no se conserva según el orden de inserción; es pseudoaleatorio.