我正在处理一些代码:
# Codecademy "9. Scrabble"
score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
"f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
"l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
"r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
"x": 8, "z": 10}
x = "DuVeT"
total = 0
for i in x:
print score[i.lower()]
total += score[i.lower()]
print total
我的问题是: 我怎么知道for循环中的“i”实际上是一个索引号与实际字符的关系?在这种情况下,当我第一次经历循环时,i =“D”。我以为我会为索引= 0。你能帮我理解你怎么知道for循环何时用索引号和字母操作?
答案 0 :(得分:0)
你看看“for i in”之后的东西:这是一个可迭代的对象。在您出现的情况下, x 是一个字符串;它的元素是字符。
如果要迭代索引位置,则必须获取对象的长度并对其进行迭代,例如:
for i in range(len(x)):
print score[x[i].lower()]
你看到它是如何工作的吗?使用索引时,可以将其用作字符串中的下标来获取所需的一个字符。
答案 1 :(得分:0)
简短版本:
dict
,来自collections
的相关类),迭代是映射的关键tuple
,list
,str
,bytes
,set
等,迭代超过了值。如果您需要序列的索引以及值,您几乎总是需要enumerate
函数,例如
for i, x in enumerate(someseq):
同样,要从映射中获取键和值,您需要items
方法(Py2上的iteritems
):
for k, v in mymapping.items():