LoginSignup
2
0

More than 1 year has passed since last update.

Streamlitのラジオボタンの選択状態に応じて整数値を引き渡す方法

Last updated at Posted at 2022-12-09

珍しくDatabricksに関係のない話題、単に詰まったので。

こちらで、ラジオボタンを作成することはできたのですが、戻り値はラジオボタンのテキストです。これに整数値を割り当てて、後段の処理に渡そうと思ったのですがやり方がわからず。

結局のところ、以下の方法で行けました。

Python
is_red = st.radio("", ("赤ワイン", "白ワイン"), horizontal=True, args=[1, 0])

if is_red == "赤ワイン":
  is_red = 1
else:
  is_red = 0

もしかしたら、もっとスマートな方法があるのかもしれませんが。

スマートな方法、@iizukak09さんに教えてもらいました。Enumを使ってラベルと数値を紐づけるという方法。なるほど。

Python
import streamlit as st
from enum import Enum

class Choice(Enum):
  def __str__(cls):
    return cls.name

  赤ワイン = 1
  白ワイン = 0

is_red = st.radio("どちらのワインがお好みですか?", Choice, horizontal=True)

st.write(f'選択:{is_red}')

if is_red.value == 1:
  st.write("ではピノ・ノワールにしましょう")
elif is_red.value == 0:
  st.write("ではリースリングにしましょう")
2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0