【问题标题】:Datastructure choice issue数据结构选择问题
【发布时间】:2026-01-31 15:00:01
【问题描述】:

我是 Python 新手。我需要一个数据结构来包含两个元素的元组:datefile path。我需要能够不时更改它们的值,因此我不确定元组是一个好主意,因为它是不可变的。每次我需要更改它时,我都必须创建一个新元组并引用它,而不是真正更改它的值;所以,我们这里可能有一个内存问题:分配了很多元组。

另一方面,我想到了一个 list ,但一个 list 的大小不是固定的,所以用户可能会输入超过 2 个元素,这并不理想。

最后,我还想以合理的名称引用每个元素;也就是说,我更喜欢可读的解决方案,而不是list[0](映射到日期)和list[1](映射到文件路径),例如PHP中的关联数组:

tuple = array()
tuple['Date'] = "12.6.15"
tuple['FilePath] = "C:\somewhere\only\we\know"

处理这种情况的 Pythonic 方法是什么?

【问题讨论】:

  • 我很确定你想要dict

标签: python list python-2.7 data-structures tuples


【解决方案1】:

为什么不使用字典。字典允许您将“键”映射到“值”。 例如,您可以这样定义字典:

dict = { 'Date' : "12.6.15", 'Filepath' : "C:\somewhere\only\we\know"}

您可以像这样轻松更改它:

dict['Date'] = 'newDate'

【讨论】:

    【解决方案2】:

    听起来你在描述一本字典 (dict)

    # Creating a dict
    >>> d = {'Date': "12.6.15", 'FilePath': "C:\somewhere\only\we\know"}
    
    # Accessing a value based on a key
    >>> d['Date']
    '12.6.15'
    
    # Changing the value associated with that key
    >>> d['Date'] = '12.15.15'
    
    # Displaying the representation of the updated dict
    >>> d
    {'FilePath': 'C:\\somewhere\\only\\we\\know', 'Date': '12.15.15'}
    

    【讨论】:

    • 但是字典对这个来说不是矫枉过正吗?我只有两个参数要存储
    • 为什么会矫枉过正?创建和修改非常轻便。
    • 不是在构建它的方式,它很容易,我的意思是当我想到字典时,我正在考虑一些哈希表或映射,它们与解决更复杂的问题有关,而且肯定有更多的键和值来存储,而不仅仅是两个糟糕的值
    • 你完全正确,a Python dict is in fact a hash map。我不会因为没有很多元素就说它更复杂。如果它解决了问题,那么它就是正确的容器:)