リスト・タプル
リスト
C/C++でいうところの配列です。C/C++ではデータの挿入、修正、削除、ソートなどを自分でプログラムをつくります。 しかし、Pythonではこれらの機能がリストに組み込まれています。大変便利です。サンプルプログラムで見てみましょう。

# -*- coding: utf-8 -*-

def main():
    #文字列似ているようで違う

    str = 'abc'
    print('文字列:' + str)
    list1 = ['a', 'b' , 'c']
    print('リスト:', list1)
    
    #似ているところ
    print(str[1])
    print(list1[1])

    #末尾に挿入
    #lenで長さをに取得するのは文字列と同じです。
    insertPos = len(list1)
    list1.insert(insertPos, 'd')
    print('末尾に挿入', list1)

    #先頭データを削除
    list1.remove('a')
    print('先頭データを削除', list1)

    #2番目データを修正
    list1[1] = 'z' 
    print('2番目データを修正', list1)
 
    #反転
    list1.reverse()
    print('反転', list1)

    #昇順にソート
    list1.sort()
    print('昇順にソート', list1)

    #reveseを使い降順にソート
    list1.reverse()
    print('reveseを使い降順にソート', list1)

    #関数を使た操作
    del list1[1] 
    print('del list1[1]', list1)
 
    #要素を抽出
    a, b = list1
    print ('要素を抽出:' + a + b)

if __name__ == "__main__":
    main()

実行結果:

文字列:abc
リスト: ['a', 'b', 'c']
b
b
末尾に挿入 ['a', 'b', 'c', 'd']
先頭データを削除 ['b', 'c', 'd']
2番目データを修正 ['b', 'z', 'd']
反転 ['d', 'z', 'b']
昇順にソート ['b', 'd', 'z']
reveseを使い降順にソート ['z', 'd', 'b']
del list1[1] ['z', 'b']
要素を抽出:zb

文字列とリストは少し似ているところ。
    #似ているところ
    print(str[1])
    print(list1[1])
リストのインテックスで指定された値が文字なら同じ値となります。
リストと文字列の違い。
list1 = ["ab", 1234 , 'cd', 3.14]
リストは文字、整数、浮動小数数などなんでもOKです。しかし、文字列は文字通り文字のみです。
降順にソートする場合は、
list1.sort(reverse=True)
になります。
リストのメソッドについてはサンプルと実行結果をみればお分かりになると思います。
次に文字列で説明したブラケット操作はどうでしょう?
すでにサンプルでlist1[1]で正常に使えることを示しました。リストのブラケットによる操作のサンプルです。

 # -*- coding: utf-8 -*-

def main():
    list1 = ["ab", 1234 , 'cd', 3.14]
    print('リスト:', list1)
    l1 = list1[:2:]
    print('リスト:', l1)

    l1 = list1[::-1]
    print('リスト:', l1)

if __name__ == "__main__":
    main()
    
実行結果:

リスト: ['ab', 1234, 'cd', 3.14]
リスト: ['ab', 1234]
リスト: [3.14, 'cd', 1234, 'ab']

文字列と同様にブラケットによる操作はできました。

タプル
リストの要素を変更できなくしたのがタプルです。例えば税率のように決まったデータを寝ぼけたプログラマーが間違えて変更しらた大変です。 タプルは変更を許さないデータテーブルに使います。以下にサンプルプログラムを示します。

 # -*- coding: utf-8 -*-

def main():
    #最初はリストで
    tpl = ["ab", 1234 , 'cd', 3.14]
    print('リスト', tpl)
    tpl[1] = 23
    print(tpl)

    #タプルは()で囲む
    tpl = ("ab", 1234 , 'cd', 3.14)
    print('タプル', tpl)
    tpl[1] = 23
    print(tpl)
if __name__ == "__main__":

    main()
実行結果は:

リスト ['ab', 1234, 'cd', 3.14]
['ab', 23, 'cd', 3.14]
タプル ('ab', 1234, 'cd', 3.14)
Traceback (most recent call last):
  File "c:\post\list2.py", line 16, in 
    main()
  File "c:\post\list2.py", line 13, in main
    tpl[1] = 23
TypeError: 'tuple' object does not support item assignment

tpl[1] = 23でエラーとなります。