iT邦幫忙

0

python題目請教

  • 分享至 

  • xImage

大家好~因為我不是本科的學生,所以不太會做,想請大家幫我看看這道題該麼解?
麻煩大家了!非常感謝~~
試撰寫一個Python函式fun(lst),函式的功能是將所傳遞進來的list裡的空tuple (empty tuple)刪除後回傳。
例:輸入print(lsttupleL([(100, 20), (''), (140, 350, 60)])) # ('') not a tuple
輸出[(100, 20), '', (140, 350, 60)]

joor iT邦新手 5 級 ‧ 2022-07-24 18:48:51 檢舉
Python split()方法
https://www.runoob.com/python/att-string-split.html
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
海綿寶寶
iT邦大神 1 級 ‧ 2022-07-25 09:32:51

https://ithelp.ithome.com.tw/upload/images/20220725/20001787X8WC6GaNf0.png

有兩個答案
看你喜歡那一種

my_list = [(100, 20), (''), (140, 350, 60)]

def lsttupleL(my_list):
    return my_list

print(lsttupleL(my_list))

def lsttuple(lst):
    ret = list(filter(lambda x: type(x) is tuple , lst))
    return ret

print(lsttuple(my_list))
0
yurei79601
iT邦見習生 ‧ 2022-07-31 01:24:08

這個問題我覺得要注意一件事情,就是函數的 output 要不要只包含 tuple。這個要求會導致函數有兩種寫法

  1. 只包含 tuple
def get_nonempty_tuple(my_list: list) -> List[tuple]:
    return [
        a_tuple for a_tuple in my_list if isinstance(a_tuple, tuple) and a_tuple
    ]
  1. 只刪除空 tuple
def filter_empty_tuple(my_list: list) -> list:
    for a_tuple in my_list:
        if isinstance(a_tuple, tuple):
            if not a_tuple:
                my_list.remove(a_tuple)
    return my_list

會特別討論得原因是,因為在 Python 裡面,() 這個符號除了當作 tuple 之外,也會被當作運算中的括號,代表先乘除,或者把裡面的運算結果視為一個物件。所以在 Python 裡面寫 (1),這個物件不會被當作 tuple,而是數字 1。如果想要定義一個 tuple 但是裡面只有 1 這個元素,需要這樣寫 (1, )

以上僅個人淺見,如果不足再請網路上大大補充

我要發表回答

立即登入回答