簡體   English   中英

列表長度改變時執行代碼行 Python

[英]Execute line of code when length of list changes Python

當列表長度大於一個時,我試圖顯示一段文本。

最初,當 streamlit 應用程序運行時,上傳的圖像列表中沒有文件,所以我不想顯示上傳的圖像文本,但是當有人上傳圖像時,我想顯示“上傳的圖像:”文本。

你如何監聽一個列表的長度並根據它的變化來執行代碼。

我的代碼:

uploaded_files = st.file_uploader(
    "Choose samples to upload...", accept_multiple_files=True)

image_list = []
image_captions = []

#ignore this function
def add_border(input_image, border, color=0):
    img = Image.open(input_image)
    if isinstance(border, int) or isinstance(border, tuple):
        bimg = ImageOps.expand(img, border=border, fill=color)
        return bimg
    else:
        raise RuntimeError('Border is not an integer or tuple!')


for uploaded_file in uploaded_files:
    image = add_border(uploaded_file, border=10, color='white')
    image_list.append(image)
    image_captions.append(uploaded_file.name)

if len(image_list) > 1:
    st.write("Uploaded Images :")


st.image(image_list, width=125)

這是我的想法:由於image_list將包含與 upload_files 中的圖像一樣多的圖像,因此您可以簡單地執行以下操作:

count = 0 
for n, uploaded_file in enumerate(uploaded_files): 
   count += 1 
   # rest of ur code 

print("Uploaded Images:") 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM