虽然我想知道Zed使用“州”和“缩写”,但这个练习大部分都在沉沦。 “state”(假设这不是拼写错误),是“状态”的单数版本,但是python是否理解为这个? “state”没有字典,只有“states”字典。在下面的代码的第二位之前,也没有提到“abbrev”,那么python如何知道“abbrev”是什么? Python不知道我们是缩写州名,只是我们将两个大写字母与州名相关联。
# create a mapping of state to abbreviation
states = {
'Oregon': 'OR',
'Florida': 'FL',
'California': 'CA',
'New York': 'NY',
'Michigan': 'MI'
}
# print every state abbreviation
print '-' * 25
for state, abbrev in states.items():
print "%s is abbreviated %s" % (state, abbrev)
答案 0 :(得分:1)
Python不知道或推断变量名称中的任何内容。它只知道你有一个任意字符串的字典碰巧映射到其他任意字符串。
循环只是说"拔出字典中的键值对"并将键存储在第一个变量中,将值存储在第二个变量中。
您可以按如下方式更改程序,看它仍然有效。
# create a mapping of state to abbreviation
monkeys = {
'Oregon': 'OR',
'Florida': 'FL',
'California': 'CA',
'New York': 'NY',
'Michigan': 'MI'
}
# print every state abbreviation
print '-' * 25
for cat, dog in monkeys.items():
print "%s is abbreviated %s" % (cat, dog)
答案 1 :(得分:0)
Python并没有看到"形态学"部分代码。它没有转换"意思" (复数/单数)
您还可以将第二部分写为:
for x, y in states.items():
print "%s is abbreviated %s" % (x, y)
Python正在寻找的是(x,y)..的组,其中x是字典中的第一项(键),y是字典中的第二项(值)。
for循环的作用是遍历(x,y)对,每对被认为是" item"就像向量states[1]
中的单个项目一样。
答案 2 :(得分:0)
states.items()返回一个键值对数据。 state和abbrev是for语句中的变量名。如果您愿意,可以将州和缩写命名为其他任何内容。
答案 3 :(得分:0)
Click
字典有:
因此 states
循环:
每次循环:
你可以放任何你想要的名字。由于 for
会返回 states.items()
元组,该元组将分配给您放入的变量名称:
(key, value)
这是一个很好的例子:
for key, value in states.items():
print "State name: {}".format(key)
print "State Two Letter Code: {}".format(value)
输出:
def splitEmail(email):
return email.split('@') # this returns: ['someone', 'gmail.com']
# 'someone' is assigned to 'account' and 'gmail.com' is assigned to domain
account, domain = splitEmail('someone@gmail.com')
print account
print domain
答案 4 :(得分:0)
states.items()
返回一个元组列表,其中包含字典中条目的键和值。 for
只是在不同的变量中“解包”每个元组。 python中的元组表示看起来像(1, 2)
。
我所做的这个互动式ipython会议可能会帮助您理解逻辑。
In [2]: states.items()
Out[2]:
[('California', 'CA'),
('Michigan', 'MI'),
('New York', 'NY'),
('Florida', 'FL'),
('Oregon', 'OR')]
In [3]: states.items()[0]
Out[3]: ('California', 'CA')
In [4]: a, b = states.items()[0]
In [5]: print a, b
California CA
In [6]: for a, b in [(1, 1), (2, 2)]:
...: print a, b
...:
1 1
2 2