Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
引用Python列表元素而不指定索引_Python_Indexing - Fatal编程技术网

引用Python列表元素而不指定索引

引用Python列表元素而不指定索引,python,indexing,Python,Indexing,如何在不指定索引号的情况下将值存储在列表中 比如说 outcomeHornFive=5 someList = [] someList.append(outComeHornFive) 而不是这样做 someList[0] # to reference horn five outcome 我怎么能做这样的事?原因是我需要在列表中引用很多项,我只是觉得跟踪哪个索引是什么非常不方便 someList.hornFive 如果希望通过属性访问(或通过名称)引用内容,则可以使用其他数据结构 您可以将它

如何在不指定索引号的情况下将值存储在列表中

比如说

outcomeHornFive=5

someList = []
someList.append(outComeHornFive)
而不是这样做

someList[0] # to reference horn five outcome
我怎么能做这样的事?原因是我需要在列表中引用很多项,我只是觉得跟踪哪个索引是什么非常不方便

someList.hornFive

如果希望通过属性访问(或通过名称)引用内容,则可以使用其他数据结构

您可以将它们放入
目录中,或者创建一个类,或者执行其他操作。这取决于你想与该对象进行何种其他交互


(另一方面,我们称之为列表,而不是数组)。

如果希望通过属性访问(或通过名称)引用内容,可以使用另一种数据结构

您可以将它们放入
目录中,或者创建一个类,或者执行其他操作。这取决于你想与该对象进行何种其他交互


(顺便说一句,我们称之为列表,而不是数组)。

不用列表,你可以用字典

请参见python文档中的

字典允许您使用键查找值:

my_dict["HornFive"] = 20

你可以用字典代替列表

请参见python文档中的

字典允许您使用键查找值:

my_dict["HornFive"] = 20

你不能也不应该。如果你能做到这一点,你会如何参考清单本身?您需要参考列表本身

原因是我需要在列表中引用很多项,我只是觉得跟踪哪个索引是什么非常不方便

someList.hornFive
不管如何组织数据,您都需要做类似的事情。如果有单独的变量,则需要知道哪个变量存储什么。如果你有自己的方法,你仍然需要知道一个简单的
someList
指的是“号角五号”,而不是说“号角六号”。
列表和dict的一个优点是,您可以考虑这些知识并编写通用代码。字典,甚至是自定义类(如果有数量有限的语义不同的属性,并且您不必将其用作集合),可以通过给它一个实际名称而不是数字索引来帮助提高可读性。

您不能也不应该这样做。如果你能做到这一点,你会如何参考清单本身?您需要参考列表本身

原因是我需要在列表中引用很多项,我只是觉得跟踪哪个索引是什么非常不方便

someList.hornFive
不管如何组织数据,您都需要做类似的事情。如果有单独的变量,则需要知道哪个变量存储什么。如果你有自己的方法,你仍然需要知道一个简单的
someList
指的是“号角五号”,而不是说“号角六号”。 列表和dict的一个优点是,您可以考虑这些知识并编写通用代码。字典,甚至自定义类(如果有有限数量的语义不同的属性,并且您永远不必将其用作集合),可以通过为其提供实际名称而不是数字索引来帮助提高可读性。

引用自

假设您希望通过点符号而不是字典语法访问字典中的值。也就是说,你有:

d = {'name':'Joe', 'mood':'grumpy'}
你想通过

d、 名字 d、 心情

而不是通常的

d['name']
d['mood']
你为什么要这么做?也许你喜欢Javascript的方式。或者你觉得它更美。在我的例子中,我需要使用相同的代码段处理Django模型或普通字典的实例,因此我需要提供获取属性的统一方法

结果很简单:

class DictObj(object):
    def __init__(self, d):
        self.d = d

    def __getattr__(self, m):
        return self.d.get(m, None)

d = DictObj(d)
d.name
# prints Joe
d.mood
# prints grumpy
引用自

假设您希望通过点符号而不是字典语法访问字典中的值。也就是说,你有:

d = {'name':'Joe', 'mood':'grumpy'}
你想通过

d、 名字 d、 心情

而不是通常的

d['name']
d['mood']
你为什么要这么做?也许你喜欢Javascript的方式。或者你觉得它更美。在我的例子中,我需要使用相同的代码段处理Django模型或普通字典的实例,因此我需要提供获取属性的统一方法

结果很简单:

class DictObj(object):
    def __init__(self, d):
        self.d = d

    def __getattr__(self, m):
        return self.d.get(m, None)

d = DictObj(d)
d.name
# prints Joe
d.mood
# prints grumpy

如果你知道你的字段是什么,那可能是另一个选择。是的,如果不变性是好的,你可以忍受
namedtuple
:P。如果你知道你的字段是什么,那可能是另一个选择。是的,如果不变性是好的,你可以忍受
namedtuple
:P.@hayk.mart就在一小时前,我们敦促他使用列表或其他集合,而不是动态创建变量。混合信号是不好的。我想我们敦促他不要使用列表(这就是我所说的数组)。@hayk.mart就在一小时前,我们敦促他使用列表或其他集合,而不是动态创建变量。混合信号是不好的。我想我们敦促他不要使用列表(这就是我所说的数组)。这真的很讨厌。在Python中,属性访问和索引是两种不同的操作,它们不应该像这样混合。如果您喜欢JS的工作方式,可以使用JS(这是一个严肃的建议,不是拒绝,JS有自己不同的范例)。听起来你的函数设计得很糟糕,有两种不同的输入。这可能意味着它应该是两个不同的函数。我只是习惯于使用getter和setter。我想这在Python中是一个糟糕的实践。谢谢你再次澄清。这真是令人讨厌。在Python中,属性访问和索引是两种不同的操作,它们不应该像这样混合。如果你喜欢JS的方式,可以使用JS(这是一个系列)