5_リストとforループ

7588 ワード

一、リスト
1.概念
役割:リストは1つのコンテナに相当し、複数のデータを同時に格納できます.
本質:リストは秩序ある集合です
説明:順序付けとは、順序付けである【データの格納順序と最下位の格納順序は同じである】
2.基本使用
2.1定義リスト
#1.    
#         ,                
#  :     = [  1....]
#  :    list  ,  ,         list【list()】,  list Python    

#a.     
list1 = []
print(list1)

#b.      
#  :        ,                  
list2 = [34,6,56,57,7]
print(list2)

#c.           
list3 = [22,33,44,22,22,22,22]
print(list3)

#d.                
list4 = ["hello",10,45.9,True]
print(list4)

2.2リスト要素取得
#2.       
"""
  :
 a.             
 b.      ,                ,   0  ,
            ,      
 c.       :
         0  ~         - 1
         -1 ~ -(    )
 d.         ,    IndexError
"""
nameList = ["tom","jack","bob","rose","zhangsan"]
print(nameList)

#a.    
#  :   [  ]
n1 = nameList[2]
print(n1)
print(nameList[2])
print(nameList[4])

#  1:            ,    
#print(nameList[10])  #IndexError: list index out of range      

#  2:           【    】,       【    】
print(nameList[-1])
print(nameList[-5])

#print(nameList[-6])  #IndexError: list index out of range

nameList = ["tom","jack","bob","rose","zhangsan"]
print(nameList)

#b.    
#  :   [  ] =  
print(nameList[1])
nameList[1] = "xxx"  #  :                
print(nameList[1])

print(nameList)

#  :            ,           


2.3リスト基本操作
#      
#1.    :+
list1 = [2,3,4]
list2 = [7,8]
print(list1 + list2)
print(list1)

#2.       :*
print(list1 * 3)
print(list1)

#  :                       ,          
#3.          :
# a.     【in , not in】,    if   for    
list3 = [2, 3, 4, 7, 8]
print(3 in list3)  #True
print(6 in list3)  #False
print(3 not in list3)  #False
print(6 not in list3)  #True

if 3 in list3:
     print("3    ")

# b.     【is , is not】,               
a = 10
b = 10
print(a is b)   #True

list1 = [1,2,3]
list2 = [1,2,3]
print(list1 is list2)  #False
print(list1 == list2)  #True

2.4リストスライス
#4.    
#  :      ,               

list1 = [11,22,33,44,55,66,77,88,99]

#a.      ,        ,  step
sublist1 = list1[1:4]    #    
print(sublist1)
sublist1 = list1[1:]    #          
print(sublist1)
sublist1 = list1[:4]    #        
print(sublist1)

#b.      ,        ,  step
sublist1 = list1[1:4:2]
print(sublist1)
sublist1 = list1[1::2]
print(sublist1)
sublist1 = list1[:4:2]
print(sublist1)


list1 = [11,22,33,44,55,66,77,88,99]

#c.      ,        
sublist1 = list1[-1:-4]   #[]
print(sublist1)
sublist1 = list1[-1:]   #         
print(sublist1)
sublist1 = list1[:-4]  #[11, 22, 33, 44, 55]
print(sublist1)


sublist1 = list1[-1:-4:-1]
print(sublist1)
sublist1 = list1[-1::-1]
print(sublist1)
sublist1 = list1[:-4:-1]
print(sublist1)


sublist1 = list1[-4:-1:-1]
print(sublist1)
sublist1 = list1[-4::-1]
print(sublist1)
sublist1 = list1[:-1:-1]
print(sublist1)


list1 = [11,22,33,44,55,66,77,88,99]

print(list1[::])
print(list1[::1])
print(list1[::-1])   #  

3.システム機能
関数#カンスウ#
説明
len(list)
リスト要素の数を取得
max(list)
リスト要素の最大値を返します
min(list)
リスト要素の最小値を返します
list(seq)
タプルをリストに変換
list.append(obj)
リストの最後に新しいオブジェクトを追加
list.count(obj)
要素がリストに表示される回数を統計します.
list.extend(seq)
リストの最後に別のシーケンスの複数の値を一度に追加します(新しいリストで元のリストを拡張します)
list.index(seq)
リストから値が最初に一致するインデックスの場所を見つけます.
list.insert(index,obj)
オブジェクトをリストに挿入
list.pop(index)
リスト内の要素(既定の最後の要素)を除去し、その要素の値を返します.
list.remove(obj)
リスト内の値の最初の一致を削除
list.reverse()
リスト内の要素を反転
list.sort(key=None,reverse=False)
元のリストのソート
list.copy()
リストのコピー
list.clear()
リストをクリア
#Python                 【  】,          

#            ,          

#1. 
#a.list.append(x),           ,x       
list11 = [1,2,3]
print(list11)
list11.append(4)
print(list11)
list11.append(False)
print(list11)
list11.append("abc")
print(list11)
list11.append([33,55])
print(list11)


#b.list.extend(x),           ,x       【  ,  】
list12 = [1,2,3]
print(list12)
#  :          ,  ,  ,  ,  
# list12.extend(5)   #TypeError: 'int' object is not iterable     
# print(list12)

list12.extend([5])
print(list12)

list12.extend("abc")
print(list12)

#  ;append extend        ,append         , extend     

print("=" * 30)

#c.list.insert(index,x),                
list13 = [1,2,3]
print(list13)
list13.insert(1,10)
print(list13)

#  :       index      ,            
list13.insert(6,8)
print(list13)

list13.insert(2,[33,55])
print(list13)

list13.insert(3,"hello")
print(list13)

#  :extend      ,             ,
# append insert           ,    

#2. 
#a.list.remove(x),          ,        ,      
list21 = [1, 10, 2, 3, 8,2,2,2]
print(list21)
list21.remove(2)
print(list21)

#  :       ,   
#list21.remove(666)  #ValueError: list.remove(x): x not in list
#print(list21)

#b.list.pop(index=-1) ,          ,     ,           
list22 = [1, 10, 2, 3, 8]
print(list22)
list22.pop()
print(list22)

list22.pop(1)
print(list22)

#  1:          ,   
# list22.pop(9)  #IndexError: pop index out of range
# print(list22)

#  2:pop()        
list22 = [1, 10, 2, 66, 8]
print(list22)
num = list22.pop(3)
print(num)
print(list22)

result = list22.remove(2)  #None
print(result)

#  :pop        ,remove   None


#c.list.clear() ,  
list22 = [1, 10, 2, 66, 8]
print(list22)
list22.clear()
print(list22)

#3. 
#a.list.reverse() ,  【  】
list31 = [34,56,56,67,100,200]
print(list31)
list31.reverse()
print(list31)

list31 = [34,56,56,67,100,200]
print(list31[::-1])

#b.list.sort(),  ,       
list32 = [100,34,200,56,56,67]
print(list32)
#  
list32.sort()
print(list32)

list32 = [100,34,200,56,56,67]
print(list32)
#  
list32.sort(reverse=True)
print(list32)

#       
list33 = ["456","abc","Kuf","helloabcbbv","xvya","888"]
print(list33)
list33.sort()
print(list33)

#             ----》   ,  sort           ,        
list34 = [45,"faf","lll","5757",False,"  "]
print(list34)
list34.sort() #TypeError: '

4.リストネスト
リストのネストは、実はリストの要素であり、リストでもあります.
注意:操作する要素の下付き文字を変数名として使用すれば、ネストされたリストを操作できます.
二、循環文のfor文
1.基本使用
構文:
for変数名inシーケンス:
じゅんかんたい
機能:forループは主にリスト、文字列、メタグループ、辞書、コレクションなど、任意のシーケンスを巡回するために使用されます.
遍歴:リスト内の各要素に順次アクセスし、各要素の値を取得することを指します.
説明:リスト内の各要素を順番に取得し、変数名に値を付けて文を実行し、リスト内のすべての要素を取得するまでループを繰り返します.
#1.    
#a.    
list1 = ["abf","cbc",100,False,34]
#  :                
for ele in list1:
     print(ele)

#b.     
for ch in "abcdef":
     print(ch)

#2.else  :     ,else     
for ch in "":
     print("for   ")
     print(ch)
else:
     print("else   ")


#  1~50   
for m in range(1,51):
	if m % 2 == 0:
		print(m)


2.遍歴リスト
list1 = [346,65,100]

#1.      
for num1 in list1:
     print(num1)

#2.      
for i in range(len(list1)):
	print(i,list1[i])

#3.    enumerate(),enum    ,      
#             :        
# print(enumerate(list1))
for i,num in enumerate(list1):
	print(i,num)


3.ネストforループ
#1.  :       
#    :1-9
#    :1~    
for n in range(1,10):
     for m in range(1,n + 1):
         print("%dx%d=%d" % (m,n,n * m),end=" ")
     print()

#2.  :      
list1 = [["a","b","c"],[22,44],[True,9,45.6]]

#    
for sublist in list1:
	print(sublist)
    for ele in sublist:
		print(ele)