1. 程式人生 > 實用技巧 >Task04:列表、元組和字串

Task04:列表、元組和字串

練習題

列表

1、列表操作練習

列表lst 內容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

請寫程式完成下列操作:

  1. 在列表的末尾增加元素15
  2. 在列表的中間位置插入元素20
  3. 將列表[2, 5, 6]合併到lst中
  4. 移除列表中索引為3的元素
  5. 翻轉列表裡的所有元素
  6. 對列表裡的元素進行排序,從小到大一次,從大到小一次
lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]
lst.append(15)
lst.insert(1,21)
lst.pop(3)
lst.reverse()
lst.sort(reverse=False)
lst.sort(reverse=True)

2、修改列表

問題描述:

lst = [1, [4, 6], True]

請將列表裡所有數字修改成原來的兩倍

def double_list(lst):
    for index, value in enumerate(lst):
        if isinstance(value, bool):
            continue
        if isinstance(value,(int,float)):
            lst[index] *= 2
        if isinstance(value, list):
            #遞迴
            double_list(value)
 
if __name__ == '__main__':
    lst = lst = [1, [4, 6], True]
    double_list(lst)
    print(lst)

3、leetcode 852題 山脈陣列的峰頂索引

如果一個數組k符合下面兩個屬性,則稱之為山脈陣列

陣列的長度大於等於3

k[0]<k[1]<…<k[i−1]<k[j]>k[i+1]…>k[len(k)−1]

這個$i$就是頂峰索引。

現在,給定一個山脈陣列,求頂峰索引。

示例:

輸入:[1, 3, 4, 5, 3]

輸出:True

輸入:[1, 2, 4, 6, 4, 5]

輸出:False

class Solution:
    def peakIndexInMountainArray(self, A: List[int]) -> int:
       
    # your code here

元組

1、元組概念

寫出下面程式碼的執行結果和最終結果的型別

(1, 2)*2# (1,2,1,2)
(1, )*2#(1,1)

(1)*2
#(2)

分析為什麼會出現這樣的結果.
元組只有一個元素
2、拆包過程是什麼?
拆包: 對於函式中的多個返回資料, 去掉元組, 列表 或者字典 直接獲取裡面資料的過程.

a, b = 1, 2

上述過程屬於拆包嗎?
不屬於
可迭代物件拆包時,怎麼賦值給佔位符?

字串

1、字串函式回顧

  • 怎麼批量替換字串中的元素?
  • 怎麼把字串按照空格進⾏拆分?
  • 怎麼去除字串⾸位的空格?

2、實現isdigit函式

題目要求

實現函式isdigit, 判斷字串裡是否只包含數字0~9

def isdigit(string):
    """
    判斷字串只包含數字
    :param string:
    :return:
    """
    # your code here
    pass

3、leetcode 5題 最長迴文子串

給定一個字串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度為 1000。

示例:

輸入: "babad"

輸出: "bab"

輸入: "cbbd"

輸出: "bb"

class Solution:
   def longestPalindrome(self, s: str) -> str:
          
    # your code here