我正在学习字典,我知道我可以通过再创建两个字典来实现这一点,但是为了简洁起见,我想让代码比必须再创建两个dict更简洁一些(当然,最后,我为这个dict写的所有内容都必须写在其他dict中),所以我想我比什么都好奇。我知道我不应该使用for循环,但我不知道另一种方法,至于LPTH的吸吮,我必须从某个地方开始。在
问题1:我怎样才能让这个循环通过每个州/缩写/城市?我需要做多个dict,或者一系列的列表并使用它们吗? 问题2:为什么这段代码运行for循环11次?在
states1 = {
'1': 'Oregon', 'a': 'OR','population': '1000',
'2': 'Florida', 'b': 'MI', 'population': '1000',
'3': 'California', 'c': 'CA', 'population': '1000',
'4': 'NewYork', 'd': 'NY', 'population': '1000',
'5': 'Michigan','e': 'MI','population': '1000',
}
for city, pop, in states1.items():
print "%s has the abbreviation %s and a population of %s" %states1['1'], states1['a'], states1['population'])
您可以将每个值设置为一个列表。
我不明白你到底想达到什么目的,但最简单的方法是:
另一个可以查找的东西是named tuple,它是我最喜欢的数据结构之一,当你想快速组织数据时。
^{pr2}$当我按照你的建议运行它(下面),它会吐出来
我不知道为什么它一直这样做,我会猜测,如果出于某种原因,选择一个完全随机的状态,因为这是一个字典,它每次都会改变状态,偶尔会有重复。
^{pr2}$理想情况下,您将拥有一个homgonous数据结构——例如
list
的dict
1。每个dict
将保存有关特定状态的信息:现在你的循环是这样的:
^{pr2}$希望这里的好处是显而易见的。对于任何给定的状态,都可以用相同的方式检索相关信息(状态的名称总是可以通过
'name'
键访问)。如果你需要一个州名称的映射(例如,你想通过缩写查找一堆州的人口),你可以很容易地通过创建一个dict。。。
1这里还有其他选项。。。您可以使用自定义类,但这似乎也是
collections.namedtuple
列表的一个很好的候选者,假设您不打算改变数据。相关问题 更多 >
编程相关推荐