2018年6月19日【python学習ノート】

8135 ワード

リスト#リスト#
pythonのデータ型:数値(可変)、文字列(可変)、リスト(可変)、元祖(可変)、辞書(可変)、集合(可変)コンテナ型のデータ:リスト、元祖、辞書、集合(シーケンス)
リスト(配列):1つのリストに複数の異なるタイプのデータを格納できる方法:複数のデータを1つのカッコ[]に格納し、複数のデータ間をカンマで区切るリストの特徴:リストは可変(中の要素の個数と値が可変)中カッコ[]はリストのフラグ
  • 1.宣言リスト:
  • リストlist 1を宣言し、5つの要素があり、それぞれ1,2,3,0.9,'abc'である.
      list1 = [1, 2, 3, 10.9, 'abc']
      print(list1)
    

    空のリストを宣言
      list2 = []
    
  • 2.取得リスト要素
  • a.単一要素の取得(要素による下付き文字の取得)
    下付き:0要素の個数-1;-1要素の個数注意:下付き文字で要素を取得する場合、下付き文字は境界を越えられません
      list1 = [1, 2, 3, 10.9, 'abc']
      print(list1[0])   #      0   
      print(list1[-1])
      print(list1[-2])
    

    b.リストの要素の一部を取得する(スライス)
    リスト名[開始下付き:終了下付き]、リスト名[開始下付き:終了下付き:ステップ長]
      list3 = [2, 10.5, 'aa', 'abc', 10]
      print(list3[1:4])   #      1~3    ,    4    
      print(list3[:4])    #             3     
      print(list3[2:])    #       2            
      print(list3[:])     #               
      print(list3[0:4:2])  #         0      3, 2      
      print(list3[::2])   #         ,        
    

    c.遍歴リスト
      list4 = [1, 34, 6, 2, 8, 91, 4]
      for item in list4:
          if item % 2 == 0:
              print(item)
    
      sum1=0
      for x in list4:
          sum1 += x
      print(sum1)
    

    whileループの使用
      i = 0  # i           
      while i < len(list4):
          print(list4[i])
          i += 1
    

    下付き文字が奇数の要素を取得
      i = 1
      while i < len(list4):
          print(list4[i])
          i += 2
    
      i = 0
      while i < len(list4):
          if i % 2 == 0:
              i += 1
              continue
          print(list4[i])
          i += 1
    

    リストに要素を追加
    list1 = []
  • 1.appendメソッド:リスト名.append(要素)
  • appendはリストに要素を追加する最後の
      list1.append('abc')
      print(list1)
      list1.append(10)
      print(list1)
    

    練習:リストの[1,34,5,6,89,3,2,4]すべての偶数を見つけて保存します.
      list2 = [1, 34, 5, 6, 89, 3, 2, 4]
      list3 = []
      for x in list2:
          if x % 2 == 0:
              list3.append(x)
      print(list3)
    
  • 2.insert:リスト名.Insert(下付き、要素)
  • 指定した下付き文字の前に指定した要素を挿入
    注意:ここの下書きは境界を越えることができます
      list4 = [1, 2, 3, 4, 5, 6, 7, 8]
      list4.insert(1, 'a')
      print(list4)
    

    要素'b'をinsertで4と5の間に挿入します.さらに8の後ろに要素'c'を挿入します.
      list4 = [1, 2, 3, 4, 5, 6, 7, 8]
      list4.insert(4, 'b')
      print(list4)
      list4.append('c')
      print(list4)
      list4.insert(8, 'c')  #             ,        
      print(list4)
    
  • 2.要素の修正:対応する要素を下付きで取得し、
    list1 = [1, 2, 3, 4, 5, 6]
    list1[1] = 20
    print(list1)
    
  • に再割り当てます.
    List 1=[1,2,3,4,5,6]リストのすべての要素を元の2倍にする
      list1[:] = 2, 4, 6, 8, 10, 12
      print(list1)
    
      list1 = [1, 2, 3, 4, 5, 6]
      for x in range(0, len(list1)):
          list1[x] = list1[x] * 2
      print(list1)
    

    リスト内の偶数ビットの要素を元の2倍にする
      list1 = [1, 2, 3, 4, 5, 6]
      print(list1[::2])
      for x in range(0, len(list1)):
          list1[x] = list1[x] * 2
      print(list1[::2])
    

    要素の削除
  • 1.del文:pythonでは、delは任意のコンテンツ
  • を削除できます.
    del文削除リスト要素:delリスト名[下付き]
    注意:削除するときに下付き文字も境界を越えてはいけません
      str1 = 'Hello'
      list1 = ['a', str1, 10+20, 'b', True]
      print(list1)
    

    下に1と表示されている要素を削除
      del list1[1]
      print(list1)
    

    リスト内のすべての偶数を削除
      list1 = [1, 2, 3, 4, 5, 6, 7, 8]
    
        
      x = (0~7)
      x = 0 list1[0] = 1  list = [1, 2, 3, 4, 5, 6, 7, 8]
      x = 1 list1[1] = 2  list = [1, 3, 4, 5, 6, 7, 8]
      x = 2 list1[2] = 4  list = [1, 3, 5, 6, 7, 8]
      x = 3 list1[3] = 6  list = [1, 3, 5, 7, 8]
      x = 4 list1[4] = 8  list = [1, 3, 5, 7]
      x = 5 list1[5] =     
      for x in range(0, len(list1)):
           if list1[x] % 2 == 0:
               del list1[x]
    

    下付き文字を削除するには、下付き文字の再割り当てに注意してください.
      list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      x = 0
      while x < len(list1):
          if list1[x] % 2 == 0:
              del list1[x]
          else:
              x += 1
      print(list1)
    

    リストから文字列を削除
    isinstance(変数、タイプ):指定変数/値が指定したタイプstr(文字列)、int(整数)、float(浮動小数点型)、bool(ブール)、list(リスト)、tuple(元祖)、dict(辞書)であるか否かを判断する
      re = isinstance('aa', str)  #   'aa'      
      print(re)
      list3 = ['a', 1, 20, 'pp', 19.3, 'ohk']
      x = 0
      while x < len(list3):
          if isinstance(list3[x], str):
              del list3[x]
          else:
              x += 1
      print(list3)
    
  • 2.指定要素
  • をremoveメソッドで削除
    書式:リスト名.remove(要素)
      list4 = ['a', 'b', 'c', 1, 2, 3]
      list4.remove('c')
      print(list4)
    

    リストに同じ要素が複数ある場合、removeは最初の要素のみを削除します.
      list4 = ['a', 'b', 'c', 1, 2, 'c']
      list4.remove('c')
      print(list4)
    

    リスト[1,3,4,7,8,2,3,4,1]のすべての奇数を削除
      list5 = [1, 3, 4, 7, 8, 2, 3, 4, 1]
      x = 0
      while x < len(list5):
          value = list5[x]
          if value % 2 != 0:
              list5.remove(value)
          else:
              x += 1
      print(list5)
    
  • 3.pop()メソッドを使用して、指定した下付き要素
  • を削除します.
    書式:リスト名.pop(下付き)指定下付き文字の対応する要素フォーマット:リスト名をリストから取り出す.pop()リストから最後の要素を取り出す
      list6 = [1, 2, 3, 4, 5, 6]
      delitem = list6.pop(1)   #     1    list6   ,   delitem 
      print(delitem, list6)
    
      del_item = list6.pop()
      print(del_item, list6)
    

    1つのリスト[1,2,3,4,5,6]の要素をすべて別のリストに取り出して[6,5,4,3,2,1]にする
      list6 = [1, 2, 3, 4, 5, 6]
      list7 = []
      while len(list6) > 0:
    
          #      
          value = list6.pop(0)
          list7.insert(0, value)
    
          #      
          # value = list6.pop()
          # list7.append(value)
    
      print(list6)
      print(list7)
    

    一般的な関数
  • 1.リストの長さの
    list1 = [1, 2, 3, 4, 5, 6]
    length = len(list1)
    print(length)
    
  • を求めます
  • 2.リストの追加操作
  • リスト1+リスト2:リスト1とリスト2の要素を、新しいリストに結合
      list2 = [1, 2, 3, 4] + ['a', 'b', 'c', 'd']
      print(list2)
    
  • 3.リストの*の操作
  • リスト*数値リスト内の要素を指定回数繰り返し、新しいリストに結合
      list3 = [10, 2] * 4
      print(list3)
    
  • 4.inとnot in
  • 要素inリスト:指定した要素が指定したリストにあるかどうかを判断する
      list4 = ['abc', '123', 1, 10]
      re = 'abc' in list4
      print(re)
    

    要素not inリスト:指定した要素がリストにないかどうかを判断する
      re = 'ab' not in list4
      print(re)
    
  • 5.リスト内の最大要素
  • を取得
    書式:max(リスト)
      list5 = [1, 34, 6, 78, 90, 12, 35]
      max1 = max(list5)
      print(max1)
    
      list6 = ['a', 'b', 'c', 'd', 'aaa']
      print(max(list6))
    

    注:最大値または最小値を取得すると、リスト内の要素のタイプはすべて数値または文字列になります.
      list6 = ['a', 'b', 96, 97, 98]
      print(max(list6))
      TypeError: '>' not supported between instances of 'int' and 'str'
    
  • 6.取得リストの最小値
  • フォーマット:min(リスト)
      list5 = [1, 34, 6, 78, 90, 12, 35]
      print(min(list5))
    
    list6 = ['a', 'b', 'c', 'd', 'aaa']
      print(min(list6))
    

    練習:試合の平均点数を求めます(5人の審判、演技に点数をつけます.最高点、最低点、最後の平均点を抜きます)
      import random
      list1 = []
      for _ in range(5):
          num = random.randint(0, 10)   #         random.uniform
          list1.append(num)
      print(list1)
    

    最高点と最低点をとる
      max1 = max(list1)
      min1 = min(list1)
      list1.remove(max1)
      list1.remove(min1)
    

    計算平均数sum(リスト):リスト要素内のすべての要素の和を計算します.
    print(sum(list1)/len(list1))
  • 7.他のデータをリスト
  • に変換する
    個数:list(データ)文字列をリストに変換
      list1 = list('abcdef')
      print(list1)
    

    リストを文字列に変換します(リストの要素を文字列につなぐだけでなく、リスト全体のすべての構造を文字列の文字として使用します).
      str1 = str([1, 2, 3, 4, 'a'])
      print(str1)
    

    rangeをリストに変換
      list2 = list(range(10))
      print(list2)