对 .find() 函数感到困惑

问题描述 投票:0回答:1

我目前正在参加 Codecademy python 课程。我想遍历列表中的字符串并将任何显示美元金额的字符串添加到销售列表中,所以我很自然地写道:

if transactions_clean[i].find('$') == True:
      sales.append(transactions_clean[i])

但这返回了一个空列表。就像随机尝试让某些东西发挥作用一样,我将其更改为

if transactions_clean[i].find('$') == False:
      sales.append(transactions_clean[i])

突然该列表包含了原始(transactions_clean)列表中的每一美元金额。如果我没看错的话,它是说如果您在字符串中找不到美元符号,请将该字符串添加到销售列表中...那么为什么它将包含美元符号的每个项目添加到列表中呢? 如果有人想查看确切的问题,可以查看 Codecademy Learn Python 3 课程中的字符串 -> Thread Shed 挑战问题。谢谢!

python-3.x findall
1个回答
0
投票

如果没有找到,

str.find()
函数返回
-1
,则找到非负位置。

因此您不应该将其与

True
False
进行比较。

© www.soinside.com 2019 - 2024. All rights reserved.