![見出し画像](https://assets.st-note.com/production/uploads/images/142752950/rectangle_large_type_2_e7b8955bd7b386be77b2e1be1949e70c.png?width=1200)
Photo by
bin_beer
Streamlit-tagsって便利なんか?
ライブラリを見てたらStreamlit-tagsなるものを見つけました。
もともとStreamlitにはMultiselectがあるじゃないですか。何が違うんじゃ?と思ったわけですよ。
![](https://assets.st-note.com/img/1717329317539-FUtzUCngUf.png?width=1200)
![](https://assets.st-note.com/img/1717331385000-BUugp7sv4w.png?width=1200)
雰囲気はかなり似てますよね。気になったので確認しました。
◾️準備
1. ライブラリインストール
pip install streamlit-tags
2. サンプルプログラム
import streamlit_tags
keywords = streamlit_tags.st_tags(
label='# Enter Keywords:',
text='Press enter to add more',
value=['Zero', 'One', 'Two'],
suggestions=['five', 'six', 'seven', 'eight', 'nine', 'three', 'eleven', 'ten', 'four'],
maxtags = 4,
key='1')
◾️実行
1. エラー発生
ModuleNotFoundError: No module named 'st_tags'
エラー発生しました。一旦ライブラリの公式ページを確認してみます
![](https://assets.st-note.com/img/1717330187286-7OrI4xiR8k.png?width=1200)
どうもstreamlitのバージョンが関係していそうです。
![](https://assets.st-note.com/img/1717330360117-3vFAl3et7v.png?width=1200)
確かに少し古いのでアップデートして再チャレンジします。
2. Streamlitのアップデート
pip install -U streamlit
![](https://assets.st-note.com/img/1717330541626-1rCjhVHWiB.png?width=1200)
最新の状態に更新したところエラーがなくなりました。
3. 実行
streamlit run sample01.py
お馴染みの起動コマンドです。sample01.pyは自身のファイルに合わせてください。
◾️結果
1. 表示内容
![](https://assets.st-note.com/img/1717330969925-h8rsz6Tv3B.png?width=1200)
初期表示として、「value」が適用され、suggestionsの値は入力補助されるみたいです。
例えば、「f」と入力すると「four」とうっすら浮かんできます。この状態で右キーを押すと、入力が補完されます。
2. Multiselectとの違い
今回の検証元となったところですが、一番の違いは
入力値は自由というところでしょうか。
Multiselectは、オブジェクト生成時に、設定している値から選択する仕様です。Streamlit-tagsは、入力を補助してくれるだけで、任意の値を入力することができます。
![](https://assets.st-note.com/img/1717331792406-FQzZkpcKaB.png?width=1200)
![](https://assets.st-note.com/img/1717331858306-521E09bzZT.png?width=1200)
◾️結論
似ているオブジェクトでしたが、それなりの意味があって用意されていました。
入力値を制限する必要がある場合はMultiselectを使い、ある程度入力補助は欲しいが制限はないようなアプリならStreamlit-tagsを使うといった棲み分けができそうです!
この記事が気に入ったらサポートをしてみませんか?