2018-10-08 day 7-容器タイプ(もっと見て、熟知してください)

10646 ワード

リスト(list)
1.リストとは
pythonのコンテナクラスのデータ型で、複数のデータを格納するために使用できます.特徴は可変で、秩序がある.可変とは、リスト内の要素の値と位置、およびリストの長さが可変であることを意味し、リストを変更することができることを決定する.整列決定は、下付き文字で要素を取得できます.
2.字面量
[要素1、要素2、要素3...]リスト内の要素は、整数、浮動小数点数、ブール、文字列、リスト、辞書、元祖、集合、関数、クラスのオブジェクト、変数など、任意のタイプのデータであってもよい.(ps:リストや辞書で直接折り返し改行できます.)例:
list1 = [1,2.3,'234',True,False,[1,2],{'a':10}, {'ad':True}] 
list2 = [](   )

例:
name = 'xiao'
names = ['  ','  ',name]
print(names)

['小呆','小鄂','xiao']
リスト要素の取得
1.個々の要素を取得
フォーマット:リスト[下付き]説明:リストが確定すると、リスト内の各要素の下付きが確定します.下付き文字の範囲0~リスト長-1/-1~リスト長.境界を越えて値を取ることはできません.例:
names = ['  ', '  ', '  ', '  ']
print(names[0],names[-4])
print(names[2])

2.要素の一部を取得(スライス)
説明:文字列スライスと同じです.境界を越えて値を取ることができます.リスト[開始下付き:終了下付き]-->開始下付きから、終了下付きまでのリストを取得[開始下付き:終了下付き:ステップ長]例:
names = ['  ', '  ', '  ', '  ','  ']
print(names[1:3])
print(names[::-1])
print(names[:])

['ナミ','ゾロ']['ロビン','サンジ','ゾロ','ナミ','ルフィ']['ルフィ','ナミ','ゾロ','サンジ','ロビン']
要素の削除
1.増(元素を増やす)
a.
リストappend(要素)-->リストの最後に1つの要素を追加appendは一度に1つしか追加できません.複数追加するには複数回しか使用できません.例:
films = ['   ', '   ', '   ', '  ']
films.append('    ')
print(films)
films.append('    ')
print(films)

['緑の巨人','アイアンマン','スパイダーマン','不思議','アメリカのキャプテン']['緑の巨人','アイアンマン','スパイダーマン','不思議','アメリカのキャプテン','恐怖クルーズ']
b.
リストInsert(下付き、要素)-->指定した下付き前に指定した要素を追加する例:ilms=['緑の巨人','アイアンマン','スパイダーマン','不思議']films.insert(1,'瞳')print(films)films.Insert(0,'黄飛鴻')print(films)
2.削除(リストの要素を削除)
削除すると、リストの長さが動的に短くなります
a.
delリスト[下付き]--->リスト内の指定された位置の要素psを削除する:del文はpythonでデータを削除するための構文であり、任意の内容例を削除することができる:
a = 10
del a
print(a)

NameError: name 'a' is not defined
例:
heros = ['  ', '   ', '  ', '   ', '   ']
del heros[-2]
print(heros)

['ゲレン','ヴィクトル','ティム','児童強盗']
b.
リストremove(要素)--->リスト内の指定した要素を削除し、指定した値を直接入力します(リスト内に削除する要素が複数ある場合は、一番前の要素しか削除できません).例:
heros = ['  ','   ', '   ', '  ', '   ', '   ']
heros.remove('   ')
print(heros)

['ゲレン','ヴィクトル','ティム','託児索','児童強盗']
c.
リストpop()-->リストの最後の要素をリストから取り出す.pop(下付き)-->リストに指定した下付き対応要素の取り出し例:
hanson = ['  ','  ','  ','  ','  ','  ']
person = hanson.pop()
print(hanson,person)

person = hanson.pop(0)
print(hanson,person)

['大呆','二呆','三呆','四呆','五呆']六呆['二呆','三呆','四呆','五呆']大呆
3.変更(リスト内の要素を修正)リスト[下付き]=新しい値--->指定した下付き文字に対応する要素の例を修正する:
teachers = ['  ','  ','   ','   ']
teachers[0] = 'yuting'
print(teachers)

['yuting','駱昊','王海飛','肖世栄']
練習する
リスト内の要素forループ変数リストを巡り、リスト内の各要素psを取得します.len()でリストの長さ例を取得できます.
num = [12,34,56,45,67,34,65]
for x in num:
    print(x,end=' ')

for i in range(len(num)):
    print(i,num[i])

12 34 56 45 67 34 65 0 12 1 34 2 56 3 45 4 67 5 34 6 65
1.1つのリストで、1つのクラスの5人の学生の成績を保存して、1つのクラスの学生の総成績を求めます
list1 = [90,76,78,99,87]
sum0 = 0
for x in list1:
    sum0 += x
print(sum0)

430
2.1つのリストで複数の人の名前(英語名)を保存し、リスト内のすべての人の名前の頭文字を大文字にします.
  1:
names = ['tom','Sunny','davie','lily','Lisa','henrry']
index = 0
for name in names:
    first = name[0]
    if first.isupper():
        index += 1
        continue
    new_name = name.title()
    names[index] = new_name
    index += 1
print(names)

['Tom', 'Sunny', 'Davie', 'Lily', 'Lisa', 'Henrry']
  2
for index in range(len(names)):
    name = names[index]
    if name[0].islower():
        names[index] = name.title()
print(names)

['Tom', 'Sunny', 'Davie', 'Lily', 'Lisa', 'Henrry']
3.前のリストから削除すると、頭文字がHの人の名前names[:]は一度コピーしたものに相当します
names = ['zhangsan','Hu','Haha','xiaoming','lisi','wangwu','heliu']
for name in names[:]:
    if name[0] == 'H':
        names.remove(name)
print(names)

['zhangsan', 'xiaoming', 'lisi', 'wangwu', 'heliu']
リスト関連演算
1.+
リスト1+リスト2----->リスト1とリスト2の要素を結合し、新しいリストを作成
list1 = [1, 2, 3]
list2 = ['a', 's', 'd']
print(list1 + list2)
print(list1)

[1, 2, 3, 'a', 's', 'd'] [1, 2, 3]
2.*
リスト*n----->リスト内の要素をn回繰り返し、新しいリストを作成
list1 = [1, 2, 3]
print(list1 * 3)

[1, 2, 3, 1, 2, 3, 1, 2, 3]
3.比較演算
リスト1==リスト2----->2つのリストの要素が等しいかどうかを判断します.
補足:等しいかどうかの2つの方法を比較します.==とisの1つの変数にはid、value、typeの3つの要素があります.id-->アドレス(メモリに格納されているアドレス)value-->データの値type-->データのタイプ(ps:pythonで変数がデータを格納するときに格納されているのはデータのid(アドレス)、取り出したのはvalue(値))=-->値が等しいかどうかを判断is-->アドレスが等しいかどうかを判断(面接!)
(ps:変数の付与値は実質的にアドレスの付与値である.
print([1, 2, 3] == [2, 2, 3])
print([1, 2, 3] == [1, 2, 3])

False True
2つのリストはサイズを比較し、各要素のサイズを比較します.
print([1, 2, 3] > [1, 2, 3])

False
リストわりあて
list1 = ['a','aa','aaa'] #list1      ,   0xffff
list2 = list1#list1     list2,list2     0xffff
list2.append('aaaa')#  list2         ,  'aaaa'
print(list2)
print(list1)#  list1    list2     ,          , list2    ,list1              ,list1    list2  

list3 = list1[:] # list1        ,         ,        list3.
list3.pop(0)
print(list3)
print(list1)

['a', 'aa', 'aaa', 'aaaa'] ['a', 'aa', 'aaa', 'aaaa'] ['aa', 'aaa', 'aaaa'] ['a', 'aa', 'aaa', 'aaaa']
まとめ:1つのリストで別のリストに値を割り当てる場合は、直接値を割り当てる場合、他のリストの要素2を変更することで別のリストに影響を与える可能性があることに注意してください.相互に影響したくない場合は、値を割り当てるときにスライスしたりコピーしたりすることができます.
list1 = [1, 2, 3]
list2 = list1
list1 = [1, 200, 3]
list1[1] = 'abc'
print(list1, list2)

[1, 'abc', 3] [1, 2, 3]
リスト関連メソッド
1.inとnot in
要素n inリスト2-->要素nがリスト2の要素であるかどうかn not inリスト2-->要素nがリスト2の要素ではないかどうか
print([1, 2, 3] in [1, 2, 3, 4, 5]) 
print([1, 2, 3] in [[1, 2, 3], 4, 5]) 
print('abc' in [1, 2, 3, 'abc']) 

False True True
2.len()
len(リスト)-->指定したリストの長さの取得
print(len([1, 2, 3, 4, 5]))

5
3.max()とmin()
max(リスト)-->リスト内の最大要素min(リスト)-->リスト内の最小要素の取得要件:a.リスト内の要素タイプが一致する
list1 = [1, 2, 3, 100, 90]
print('max:',max(list1))
print('min:',min(list1))
# list2 = [lambda a:a, lambda x:x*2]
# print(max(list2))

max: 100 min: 1
4.list(データ)
List(データ)-->指定したデータをリストに変換注意:リストシーケンスのみをリストシーケンスに変換できます:文字列、range、リスト、辞書、元祖、セット、反復器
print(list('abcde'))
print(list(range(5)))
print(list(100)) 

['a', 'b', 'c', 'd', 'e'] [0, 1, 2, 3, 4] TypeError
5.count()
リストcount(要素)-->指定した要素のリスト内の個数が存在しない検索要素を取得して0を返します.
names = ['    ', '  ', '       ', '   ', '    ']
print(names.count('    '))
print(names.count('    '))

2 0
6.extend()
リストextend(シーケンス)-->シーケンス内の要素をリストに追加
names = ['    ', '  ', '       ', '   ', '    ']
names.extend('abc')
print(names)

names.extend(range(3))
print(names)

names.extend(['an', 29])
print(names)

['千と千尋','龍猫','ハルの動く城','風の谷','千と千尋','a','a','b','b','c','千と千尋','龍猫','ハルの動く城','風の谷','千と千尋','a','b','c','c',0,1,2['千と千尋','龍猫','ハルの動く城','風の谷','千と千尋','a','b','b','c',0,1,2,'千と千尋','an','an','an','an',',',',',',29]
7.index(元素)
リストindex(要素)-->指定した要素のリスト内の下付き文字を取得注意:要素がリスト内に複数ある場合は、一番前の要素の下付き文字を取得します.
names = ['     ', '      ', '    ', '    ', '    ']
print(names.index('      '))
print(names.index('    '))
# print(names.index('abc'))  #        ,   , ValueError


1 2
8.reverse()
リストreverse()-->リスト内の要素を逆順序にします
names = ['     ', '      ', '    ', '    ', '    ']
names.reverse()
print(names)

['阿甘正伝','覇王別姫','阿甘正伝','肖生克の救い','沈黙の子羊']
9.sort()
リストsort()-->リストの要素を小さいから大きいまで昇順に並べ替える.sort(reverse=True)-->リスト内の要素を昇順ソート(大きいから小さい)sorted(リスト)-->リスト内の要素を昇順ソートして新しいリストを生成(元のリストは変更しない)sorted(リスト、reverse=True)-->リスト内の要素を降順ソートして新しいリストを生成(元のリストは変更しない)
要求:a.リストの要素タイプが一致するb.リストの要素は'>'操作をサポートする
scores = [12,34,67,3,23,7,96,24]
scores.sort()
print(scores)

scores = [12,34,67,3,23,7,96,24]
scores.sort(reverse=True)
print(scores)

scores = [12,34,67,3,23,7,96,24]
new_scores = sorted(scores,reverse=True)
print(new_scores)

[3, 7, 12, 23, 24, 34, 67, 96]
[96, 67, 34, 24, 23, 12, 7, 3] [96, 67, 34, 24, 23, 12, 7, 3]
10.clear()
リストclear()-->リスト内の要素を空にする[]
scores = [12,34,67,3,23,7,96,24]
scores.clear()
print(scores)

[]
11.copy()
リストcopy()-->リストの要素をコピーして新しいシーケンスを生成します.リスト[:]の機能と同じようにアドレス値が変化します.
list1 = [1, 2, 3, 4]
new = list1.copy()
print(new,id(list1),id(new))

[1, 2, 3, 4] 35355984 10572704