2016-12-05 9 views
0
a = { 
    'a' : [ 
     ('a', '"Folks marched & protested for our right to vote." [email protected]\n', 1477610322, 'TweetDeck', 545, 226), 
     ('a', '"We urge voters to dump Trump" [email protected]', 1476205194, 'TweetDeck', 7165, 2225) 
     ], 
    'b:' : [ 
     ('b:', 'Join me in #Atlanta November 2. Details- #YouIn? #JohnsonWeld\n', 1478034098, 'Hootsuite', 108, 51) 
     ] 
    } 

for key, value in a.items(): 
    for item in value: 
     #extract string beginning with #'s with the user (the users are a and b) 

タプルで示されたユーザーでハッシュタグを抽出しようとしています。メソッドの開始はわかっていますが、タプルには使用できません。アイテムがタプルのシンボルで始まっているかどうかチェックするPython

+0

'string'とは何ですか?文字列の任意の位置からタグを抽出する必要があるように見えます。 're'モジュールがおそらく最良のベットになります。 're.findall(r '#\ w *'、item [1])' – AChampion

+0

何もインポートできません –

+0

あなたは "import re"を許可されていないということですか? – bli

答えて

1

あなたは空白のデフォルトの分割によってsplit方法、使用して文字列を分割することができます:

s = 'Join me in #Atlanta November 2. Details- #YouIn? #JohnsonWeld\n' 
s.split() 
# ['Join', 'me', 'in', '#Atlanta', 'November', '2.', 'Details-', '#YouIn?', '#JohnsonWeld'] 

あなたはその後、リスト内包で、それはハッシュタグであるかどうかを確認するために、結果として得られる各要素にstartswithを使用することができました:

[tag for tag in s.split() if tag.startswith("#")] 
# ['#Atlanta', '#YouIn?', '#JohnsonWeld'] 

あなたはより読みやすいコードを機能でこれをカプセル化することができます:

def get_hashtags_from_string(s): 
    return [tag for tag in s.split() if tag.startswith("#")] 
+0

しかし、私はタプルを持っています –

+0

あなたは、必要なタプルの要素に関数を適用できます。 2番目の要素にハッシュタグが存在すると予想される場合は、 'get_hashtags_from_string(item [1])'(Pythonの索引付けはゼロベースであることに注意してください)。 – bli

+0

'' b '、[] 'のような要素を取り除きたい場合は、ハッシュタグのリストが空であるかどうかをテストしてから、' author'リストに追加することを決めることができます。 – bli

関連する問題