Python-シーケンスタイプのリスト

3514 ワード

リスト#リスト#
リストは、0つ以上のオブジェクト参照を含む順序付きシーケンスです.
リストは可変です.リスト内のアイテムを削除または置換できます.リスト内のスライスを挿入、置換または削除することもできます.
関数#カンスウ#
list()    #          ,             
del x     #        ,                           ,               。              ,     try...finally             ;      with  
>>>woods = ["Cedar", "Yew", "Pine", "Fir", "Spruce"];
>>>woods[2:4] = [] == del woods[2:4];

range(x)  #        ,x     , x     n,    range()      0, 1, ..., n -1
>>>for i in range(len(numbers)):
        numbers[i] += 1;        #                

空のリストはlist()関数で作成するか、空の四角カッコで作成できます.
メタグループと同様に、リストには任意のデータ型のデータ項目が格納され、リストやメタグループなどの組合せデータ型が含まれます.
リストでは、標準の比較オペレータ(=、>)を使用できます.
リストは、リスト内のデータ項目にアクセスするためにスライス操作を行うことができる
>>>L = [-17.5, "kilo", 49, "V", ["ram", 5, "echo"], 7];
>>>L[1][0] == L[-5][0] == 'k';
>>>L[4][2] == L[4][-1] == L[-2][2] == L[-2][-1] == 'echo';
>>>L[4][2][1] == L[4][2][-3] == L[-2][-1][1] == L[-2][-1][-3] == 'c';

メタグループと同様に、リストもネスト、指、スライスなどの操作をサポートし、inとnot inを使用してメンバー関係テストを行い、+を使用して接続し、+=を使用して拡張し、*と*=を使用して複製操作を行う.
リストには、組み込まれたlen()関数とdel文を使用できます.
方法
L.append(x)  #    x     L   
L.count(x)   #     x   L      
L.extend(m)  # iterable m     L    ,   +=       
L.index(x, start, end)  #     x   L ( L start:end   )          ,       ValueError  
L.pop(i)  #     L     int i     ,      list L       
L.remove(x)  # list L            x,     x   ValueError  
L.reverse()  #   L    
L.sort()  #   L    ,    sorted()    
L.insert(i, x)  #     int i     x    L
>>>woods = ["Cedar", "Yew", "Fir", "Spruce"];
>>>woods[2:2] == woods.insert(2, "Pine");
['Cedar', 'Yew', 'Pine', 'Fir', 'Spruce']

任意の指定可能な(リスト、タプルなど)データ型は、シーケンス分割オペレータを使用して分割できます.つまり*
>>>first, *rest = [9, 2, -4, 8, 7];
>>>first, rest;
(9, [2, -4 , 8, 7])

>>>first, *mid, last = "Charles Philip Arthur George Windsor".split()
>>>first, mid, last;
('Charles', ['Philip', 'Arthur', 'George'], 'Windsor')

>>>*directories, ezecutable = "/usr/local/bin/gvim".split("/")
>>>directories, executable;
(['', 'usr', 'local', 'bin'], 'gvim')

>>>def product(a, b, c):
			 return a * b * c;
>>>L = [2, 3, 5];
>>>product(*L)
30
>>>product(2, *L[1:]);
30

リストの内容
付加条件
>>>leaps = [];
>>>for year in range(1900, 1940):
				if(year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
					leaps.append(year);
					
>>>leaps = [y for y in range(1900, 1940) if(y % 4 == 0 and y % 100 != 0) or (y % 400 == 0)];

ネストの実装
>>>codes = []
>>>for sex in "MF":            #Male,Female
			for size in "SMLX":      #Small, Medium, Large, eXtra large
					if sex == "F" and size == "X":
								continue;
					for color in "BGW":  #Black, Gray, White
							codes.append(sex + size + color);
							
>>>codes = [s + z + c for s in "MF" for z in "SMLX" for c in "BGW" if not (s == "F" and z == "X")];