Python 3——内蔵データ構造:list、tuple
83576 ワード
内蔵データ構造(変数タイプ) list set(詳細はpython-データタイプを参照) dict(詳細はpython-データタイプを参照) tuple リスト順序の数字の組み合わせ 作成リスト 空リスト アクセス は、下付き操作(インデックス) を使用する.リストの位置は0から開始されます.(規定リストの最後の下位が−1と表示されます.) タイル分け操作 はリストを任意のセグメントで切り取る を行う. list[:](番号を付ける前からコロンにかけての範囲ですが、コロン後の数字は取れません)(コロンの前後は空いています.前は空いています.位置0から始まります.後は空です.最大数を加算します.つまり最後のデータを切り取ります.) list[:](2番目のコロンは成長幅を表し、デフォルトの成長幅は1であり、すなわち1つの成長であり、この数がマイナスの場合は右から左に順番を示す) は、関数IDを内蔵し、変数またはデータの一意決定番号 を表示する. del削除コマンド delの変数の後、この変数は を使用できなくなります.
リスト加算 カナダを使って2つのリスト を接続します.
リスト数乗 リストは直接整数と乗算され、nリストを連結することに相当します.
メンバー資格演算 は、1つの要素がリスト内にあるかどうかを判断する である.
リストの巡回 for while 二層リストサイクル 簡単な方法でリスト を作成します.いくつかの余談
len():リストの長さを表します.
cmp(list 1,list 2):2つのリストの要素を比較します.
max():リストの最大値を表します(同じ道理でminもあります)
list():他の形式のデータをlistに変換する(前提は変換可能)
zip():シーケンスの要素を順番にペアリングして一つのタプルを構成し、これらのタプルを新しいシーケンスに配置します. zip()関数はzipタイプを返します.list()関数で変換する必要があります.
sort():リスト要素を並べ替える
index(x):最初のx要素のインデックス値を返します.
括弧の中で2つの値を定義する必要があります.一つは位置の下付きを表します.一つは挿入値indexを表します.
remove(x):最初に現れた要素xをリストから削除します.
クリア():クリア ディープコピーと浅いコピーの違い 深くコピーするには、特定のツール が必要です.タプルは、変更不可能なリスト と見なされてもよい. tupleは小さい括弧の中で書いて、元素の間はカンマで仕切ります. タプルの要素は可変ではないが、listなどの可変オブジェクトを含むことができる. タプルは辞書のキーとしてもいいし、セットの要素としてもいいですが、リストはできません.リストのタプルを含めてもいいです. 元のグループの作成はシーケンステーブルで、順序が良い です.タプルのデータ値はアクセスできます. は変更できません.タプルデータは、任意のタイプ であってもよい.とにかく、listのすべての特性は、修正できる以外は、元のグループが持っています.つまり、インデックス、スライス、シーケンス加算、相乗、メンバー資格操作などは全部同じです.
ジェネレータ式
l1=[] #
print(type(l1))
print(l1)
l2=[100] #
print(type(l2))
print(l2)
l3=[2,5,5,8,1,3] #
print(type(l3))
print(l3)
l4=list() #
print(type(l4))
print(l4)
:
<class 'list'>
[]
<class 'list'>
[100]
<class 'list'>
[2, 5, 5, 8, 1, 3]
<class 'list'>
[]
Process finished with exit code 0
リストの一般的な操作1#
l=[2,3,5,4,1,6]
print(l)
print(l[4]) #
print(l[2:4]) #
print(l[ :5]) #
print(l[2:]) #
print(l[ : :2]) # 2
print(l[-2:-5]) # ,
print(l[-5:-2])
print(l[-2:-5:-1]) # , ,
:
[2, 3, 5, 4, 1, 6]
1 #
[5, 4] #
[2, 3, 5, 4, 1] #
[5, 4, 1, 6] #
[2, 5, 1] # 2
[]
[3, 5, 4]
[1, 4, 5]
Process finished with exit code 0
スライス操作は新しいリストを生成することです.l=[2,5,3,8,4,6]
ll=l[:]
l[1]=100
#l ll
print(id(l))
print(id(ll))
print(l)
print(ll)
:
287737405960
287737406024
[2, 100, 3, 8, 4, 6]
[2, 5, 3, 8, 4, 6]
Process finished with exit code 0
リスト操作2#del
l=[2,5,3,8,4,6]
print(id(l))
del l[2]
print(id(l))
print(l)
:
770037604872
770037604872 # del list,
[2, 5, 8, 4, 6]
Process finished with exit code 0
#
a=[1,2,3,4]
b=[5,6,8]
c=['a', 'b', 'c']
d=a+b+c
print(d)
:
[1, 2, 3, 4, 5, 6, 8, 'a', 'b', 'c']
Process finished with exit code 0
#
a=[1,2,3,4]
b=a*3
print(b)
:
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
Process finished with exit code 0
a=[1,2,3,4]
b=3
c=b in a
print(c)
:
True
# :
a=[1,2,3,4]
for i in a:
print(i)
b=['i love sunyue']
for i in b:
print(i)
print("#"*20)
# while
l=len(a)
n=0 #n
while n<l:
print(a[n])
n += 1
:
1
2
3
4
i love sunyue
####################
1
2
3
4
Process finished with exit code 0
#a ,
a=[["one",1],["two",2],["three",3]]
for k,v in a:
print(k,"---",v)
:
one --- 1
two --- 2
three --- 3
Process finished with exit code 0
リストの内容:list content# for
a=[x for x in range(1,6 )]
b=[i for i in a] # a , b
print(b)
c=[i*10 for i in a] # a 10 , c
print(c)
d=[m for m in a if m % 2 ==0] # : a d
print(d)
f=[m+n for m in a for n in b] # for ,
print(f)
:
[1, 2, 3, 4, 5]
[10, 20, 30, 40, 50]
[2, 4]
[2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8, 5, 6, 7, 8, 9, 6, 7, 8, 9, 10]
Process finished with exit code 0
#
# , ,
# , , ,
def a(n):
n[2]=300
print (n)
return None
def b(n):
n += 100
print (n)
return None
an=[1,2,3,4,5,6,7]
bn=9
print(an)
a(an) # ,
print(an)
print(bn)
b(bn) # , ,
print (bn)
:
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 300, 4, 5, 6, 7]
[1, 2, 300, 4, 5, 6, 7]
9
109
9
リストの関数についてlen():リストの長さを表します.
cmp(list 1,list 2):2つのリストの要素を比較します.
max():リストの最大値を表します(同じ道理でminもあります)
list():他の形式のデータをlistに変換する(前提は変換可能)
zip():シーケンスの要素を順番にペアリングして一つのタプルを構成し、これらのタプルを新しいシーケンスに配置します.
names = [' ', ' ', ' ', ' ']
books = [' ', ' ', ' ', ' ']
times = ['1501 -1582 ', '1330 —1400 ', '1296 —1370 ', '1715 -1763 ']
books_info = zip(names, books, times)
print(list(books_info))
# :[(' ', ' ', '1501 -1582 '), (' ', ' ', '1330 —1400 '), (' ', ' ', '1296 —1370 '), (' ', ' ', '1715 -1763 ')]
apped():一つの内容を挿入し、末尾に追加することを表します.sort():リスト要素を並べ替える
index(x):最初のx要素のインデックス値を返します.
a = [i for i in range(1,5)]
print(a)
a.append(100)
print(a)
:
[1,2,3,4]
[1,2,3,4,100]
insert():指定位置挿入を表します.括弧の中で2つの値を定義する必要があります.一つは位置の下付きを表します.一つは挿入値indexを表します.
a = [i for i in range(1,5)]
print(a)
a.insert(2,50)
print(a)
:
[1, 2, 3, 4]
[1, 2, 50, 3, 4]
del削除:インデックス(要素の位置)から削除します.str=[1,2,3,4,5,2,6]
del str[1] # 1
print(str)
[1, 3, 4, 5, 2, 6]
str=[0,1,2,3,4,5,6]
del str[2:4] # 2 , 4 ( )
print(str)
[0, 1, 4, 5, 6]
pop():列の最後から一つの要素を取り出します.つまり最後の要素を取り出して、括弧の中にも指定した下付き文字を入力できます.remove(x):最初に現れた要素xをリストから削除します.
クリア():クリア
#
a = [i for i in range(1,10)]
print(a)
print(id(a))
#pop
last_del=a.pop() # pop
print(" :",last_del)
print(a)
print(id(a)) #id ,
b = a.pop(6)
print(" 6 :",b)
print(a)
print(id(a))
#remove
a.remove(2) # a 2
print(a)
print(id(a)) #id ,
#clear
a.clear() #
print(a)
print(id(a)) #id ,
:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
722993177096
: 9
[1, 2, 3, 4, 5, 6, 7, 8]
722993177096
6 : 7
[1, 2, 3, 4, 5, 6, 8]
722993177096
[1, 3, 4, 5, 6, 8]
722993177096
[]
722993177096
逆転リストの内容#
a = [i for i in range (1,10)]
print(a)
print(id(a))
a.reverse()
print(a)
print(id(a)) #id ,
:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
292435288584
[9, 8, 7, 6, 5, 4, 3, 2, 1]
292435288584
exted拡張リストは、2つのリストのうちの1つを直接に他の後ろに連結します.#
a = [i for i in range (1,10)]
b = [i for i in range (10,15)]
print(a)
print(id(a))
a.extend(b)
print(a)
print(id(a))
:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
62002192904
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
62002192904
count検索リストで指定された値または要素の個数# count
a = [1,2,5,3,5,4,5,1,2,1]
print(a)
print(id(a))
n= int(input(" :")) #input , int
b = a.count(n)
print(" {} :".format(n),b)
:
[1, 2, 5, 3, 5, 4, 5, 1, 2, 1]
637753188872
:5
5 : 3
コピーa = [1,2,3,4,5]
print(a)
b = a #list , ,
b[3] = 77
print(" b a :",a)
print("a ID :",id(a))
print(" b b :",b)
print("b ID :",id(b))
print("*"*20)
#
b = a.copy()
print("a :",a)
print("a ID :",id(a))
print("b :",b)
print("b ID :",id(b)) #copy ID
print("*"*20)
b[3] = 88
print(" b a :",a)
print(" b b :",b)
:
[1, 2, 3, 4, 5]
b a : [1, 2, 3, 77, 5]
a ID : 33841672
b b : [1, 2, 3, 77, 5]
b ID : 33841672
********************
a : [1, 2, 3, 77, 5]
a ID : 33841672
b : [1, 2, 3, 77, 5]
b ID : 34328264
********************
b a : [1, 2, 3, 77, 5]
b b : [1, 2, 3, 88, 5]
a0 = [10,20,30]
a = [1,2,3,a0]
b = a.copy()
print(id(a[3]))
print(id(b[3])) # b a0
a[3][2] = 666
# ,
# ,b a, b a0 , b a0 ,a a0
print(a)
print(b)
:
4809224
4809224
[1, 2, 3, [10, 20, 666]]
[1, 2, 3, [10, 20, 666]]
元のグループ-tuple#
t = ()
print(type(t))
<class 'tuple'>
#
t = (1,)
print(type(t))
print(t)
<class 'tuple'>
(1,)
t = 1,
print(type(t))
print(t)
<class 'tuple'>
(1,)
#
t = 1,2,3,4,5
print(type(t))
print(t)
<class 'tuple'>
(1, 2, 3, 4, 5)
#
l = [1,2,3,4]
t = tuple(l)
print(type(t))
print(t)
<class 'tuple'>
(1, 2, 3, 4)
タプルの特性ジェネレータ式
gen = (2**i for i in range(8)) #
# ,
print(gen)
print((gen)) #
print(tuple(gen))
gen = (2**i for i in range(8))
print(next(gen)) # next()
print(next(gen))
for item in gen: # for
print(item,end = ' ')
gen : <generator object <genexpr> at 0x000001D43FF88E48>
list(gen) : [1, 2, 4, 8, 16, 32, 64, 128]
tuple(gen) : ()
: 1
: 2
:
4 8 16 32 64 128