次のコードに遭遇したときに、私はPythonでツイートをトークン化するコードを調べていました。 tokens_re
とemoticons_re
は正規表現オブジェクトであることに注意してください。 tokenize(s)
はリストを返すので、tokens
はリストです。私はPythonには新しくて、リストの要素でif-elseが動いているのかどうかわかりません。上記のternary operatorは同じ構文をしていません。だから、for
は三項演算子のelse
一部のない一部であるpython:if-elseの要素を1行にします。3進演算子
[(token if emoticon_re.search(token) else token.lower()) for token in tokens]
#^ ternary operator expression ^
:
def tokenize(s):
return tokens_re.findall(s)
def preprocess(s, lowercase=False):
tokens = tokenize(s)
if lowercase:
tokens = [token if emoticon_re.search(token) else token.lower() for token in tokens]
return tokens
に相当します。 –
与えられたコードのリストのすべての要素に対して三項演算子をどのように使用していますか?私はどのように彼はelseブロックでforループを使用するが、ifブロックのリストのすべての要素を反復したのか理解できない。 – kartikeykant18
正常に動作する。 _listの理解では、 'token'は' tokens'をループし、 'token'の各値に対して三項式を持ちます。その結果は結果のリストに格納されます。用語の括弧を想像してみてください。 –