2019年1月4日 星期五

[Python學習筆記] python串列(list)的學習(七):串列進階的操作,串列的搜尋函數 in、not in、index、count 使用方法

串列(list)是一種有序的資料結構,在工作上常常會需要搜尋串列中的某些元素,python 也提供四種方法來搜尋串列元素:in、not in、index、count,透過這些方法可以更加方便搜尋串列,使用方法及其功能差異整理如下:

(1) in 方法:用來判斷某元素是否存在串列中,如果存在則回傳 True,反之不存在則回傳False,語法如下:

                   布林值 = 搜尋元素值 in 串列變數名稱

範例1:搜尋某數字是否存在串列中,如果存在就顯示已存在,如果不存在就新增至串列

             nums=[1,2,3,4,5,6,7]
             num=9
            
             if num in nums:
                print(num,"已存在nums中")
             else:
                nums.append(num)
                print(num,"已新增至nums串列")
                print("nums=",nums)

            執行結果:因為 9 不存在 nums 中,所以會新增至nums中,nums會變成  [1, 2, 3, 4, 5, 6, 7, 9]


(2) not in方法:用來判斷某元素是否不存在串列中,與 in 方法有相反的結果,如果不存在則回傳 True,反之存在則回傳 False,語法如下:

                         布林值 = 搜尋元素值 not in 串列變數名稱

範例2:搜尋某字串是否不存在串列中,如果不存在就顯示不存在,反之存在就顯示已存在

             str1=['甲午','乙未','丙申','丁酉','戊戌','己亥']
             str2='丁酉'

             if str2 not in str1:
                print(str2,"不存在str1中")
             else:
                print(str2,"已存在str1中")

             執行結果:因為 "丁酉" 存在 str1中,所以會顯示"已存在str1中"

(3) index方法:index方法會傳回要尋找的元素在串列中找到相同元素的第1個索引值(可能找到相同的不只一個),語法如下:

                         索引值 = 串列變數名稱.index(要尋找的元素值)

範例3:搜尋某數字在串列中的索引值

             num=[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
             find_num=9
             num_index=num.index(find_num)
             print(find_num,'出現在num的索引值為:',num_index)

             執行結果:因為 9 出現在num串列中有兩個,index分別為8、18,所以回傳值為第1個index:8

(4) count方法:count方法會傳回要尋找的元素在串列中有幾個,語法如下:

                         找到數量 =  串列變數名稱.count(要尋找的元素值)

範例4:搜尋某數字在串列中有幾個

             num=[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
             find_num=9
             find_count=num.count(find_num)
             print(find_num,'在num中有',find_count,'個')

             執行結果:9 出現在num串列中有2個

完整程式碼如下:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Fri Jan  4 16:22:56 2019
  4. @author: 軟體罐頭
  5. """
  6. print('範例 1:搜尋某數字是否存在串列中,如果在就顯示已存在,如果不在就新增至串列')
  7. nums=[1,2,3,4,5,6,7]
  8. num=9
  9. if num in nums:
  10.     print(num,"已存在nums中")
  11. else:
  12.     nums.append(num)
  13.     print(num,"已新增至nums串列")
  14.     print("nums=",nums)
  15. print()
  16. print('範例 2:搜尋某字串是否不存在串列中,如果不存在就顯示不存在,反之存在就顯示存在')
  17. str1=['甲午','乙未','丙申','丁酉','戊戌','己亥'
  18. str2='丁酉'
  19. if str2 not in str1:
  20.     print(str2,"不存在str1中")
  21. else:
  22.     print(str2,"已存在str1中")
  23. print()
  24. print('範例 3:搜尋某數字在串列中的索引值')
  25. num=[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
  26. find_num=9
  27. num_index=num.index(find_num)
  28. print(find_num,'出現在num的索引值為:',num_index)
  29. print()
  30. print('範例 4:搜尋某數字在串列中有幾個')
  31. num=[1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
  32. find_num=9
  33. find_count=num.count(find_num)
  34. print(find_num,'在num中有',find_count,'個')

執行結果如下: