教育问题:
在这段代码中,它为我提供了像"<something>"
这样写的值量(大约是“ <”和“>”)。
tokens = ['<greeting>', 'Hello World!', '</greeting>']
count = 0
for token in tokens:
if token[0] == '<' and token[-1] == '>':
count += 1
print(count)
有人可以向我解释if token[0] == '<' and token[-1] == '>'
部分吗?
因为我的读法是:如果列表标记中的第一个值("<greetings>"
)等于“ <”,并且最后一个值('</greetings>'
)等于'>',然后加1进行计数。
我会像if token == '<' and token == '>'
这样写,但这是不正确的。
谢谢!
答案 0 :(得分:2)
token
是tokens
列表中的元素
条件检查元素的前char
是<
,最后一个字符是>
每次找到符号,count
变量都会增加,即在这种情况下为2(<greeting>
和</greeting>
)
答案 1 :(得分:1)
基本上,您正在遍历令牌列表,并检查令牌的第一个字符是否以'<'
开头并以'>'
结尾。您可以在单个语句中压缩逻辑
sum(1 for token in tokens if token[0] == '<' and token[-1] == '>')
答案 2 :(得分:0)
代码会在for token in tokens:
中的列表上进行迭代,因此对于第一个迭代,令牌变量中有'<greeting>'
。
因为它是一个字符串,token[0]
是'<',而token[-1]
是'>'。
token[-1]
与token[len(token)-1]
相同
答案 3 :(得分:0)
变量token
仅包含列表中的一个字符串,而token[0]
是该字符串的第一个字符。
通过添加打印语句,您可以自己看到:
tokens = ['<greeting>', 'Hello World!', '</greeting>']
count = 0
for token in tokens:
print()
print('token', token)
print(token[0])
print(token[-1])
if token[0] == '<' and token[-1] == '>':
count += 1
print('count', count)
此打印:
token <greeting>
<
>
token Hello World!
H
!
token </greeting>
<
>
count 2
答案 4 :(得分:0)
您必须在此代码段中了解两种Python语言功能,以了解其背后的想法:
for token in tokens
部分遍历令牌列表,并在每次迭代时提取下一个令牌。首先它将得到'<greeting>'
,然后是'Hello World!'
,最后是'</greeting>'
。
if token[0] == '<' and token[-1] == '>'
部分负责使用索引来识别"<something>"
格式。 [0]
索引引用令牌的第一个字符,[-1]
索引引用令牌的最后一个字符。此行为是Python的一项精巧功能,可以“以另一种方式”“计数”可迭代对象。