我有以下代码:
hand=["TS","AD"]
test=['--23456789TJQKA'.index(a) for a, b in hand]
print (test)
结果是:
[10, 14]
该代码段如何工作?它是[用于列表中的a,b的a]的内置函数,以获取python中列表中每个2个字母的单词的第一个字母吗?
最佳答案
首先,让我们将代码转换为for循环:
hand = ["TS","AD"]
test = []
for a,b in hand:
test.append('--23456789TJQKA'.index(a))
# note that we didn't use b
print(test)
那么这是怎么回事?
好吧,
hand
中的每个元素都是两个元素的可迭代对象。这意味着for a,b in hand
遍历hand
中的每个字符串,将第一个字符分配给a
,将第二个字符分配给b
。这实际上与以下内容相同:for mystr in hand:
a = mystr[0]
b = mystr[1]
# or equivalently, a,b = mystr
下一个是
'--23456789TJQKA'.index(a)
,它仅返回字符串a
中第一次出现的'--23456789TJQKA'
的索引。因此输出最终是两个数字的列表-
hand
中每个字符串的第一个字符的索引,即'T'
和'A'
关于python - 获取python中每个2个字母的单词的第一个字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30043232/