1. ホーム
  2. パイソン

Pythonです。属性エラー - 'NoneType' オブジェクトに属性がない

2022-02-24 03:05:42
概要を説明します。 Pythonでは、文字列、リスト、タプルなど、メンバが順序付けられ、添え字オフセットでアクセスできる"sequence"と呼ばれるデータ型が存在します。これらのシーケンスについて、導入、演算子、組み込み関数、機能、関連モジュールなどの観点から学びます。







この記事の出典 Pythonプログラミングの核となるシーケンス:文字列、リスト、タプル



<スパン 1. シーケンス









シーケンス型演算子です。



seq[index],seq[index1:index2],seq*expr,seq1+seq2,seq内のobjとseq内にないobjの組み合わせ。











シーケンス型ファクトリー変換関数。



list(iter),str(obj),unicode(obj),basestring(),tuple(iter),iter.











シーケンス型で利用可能な組み込み関数







enumerate(iter)



len(seq)



max(iter,key=None) または max(arg0,arg1... ,key=NOne)



min...



リバース(seq)



sorted(iter,func=None,key=None,reverse=False)



sum(seq,init=0)



zip([it0,it1... .intN])











ご覧ください 2つの事例を紹介します。



1)



s='foobar'



for i,t in enumerate(s):



    print i, t



0 f



1 o



2 o



...



2)zip()



s,t='foa','obr'.



zip(s,t)



[(f,o),(o,b),(a,r)] となります。





<スパン



<スパン 2. 文字列









メンバーオペレーターです。 で、ない











文字変換機能。 アスキー対応文字と数値の変換



>>>chr(65)



'A'



>>>ord('a')



97



文字列の組み込み関数。文字列クラス参照



注意 python の文字列はターミネーターとして \0 を使用しないので、文字列の終わりを考える必要はありません。







また、pythonでは文字列はimmutable(不変)な型です。特定の変数に対応する文字列を変更するには、文字列オブジェクトを再作成することでのみ可能です。





<スパン 3. リスト





<スパン 3.1) 基本操作



作成します。[]



アクセス:リスト[index]



更新:追記



<スパン 削除:delemove





リストの作成。

  sample_list = ['a',1,('a','b') ]である。



<スパン num_inc_list = range(30): リストの作成

<スパン <スパン sample_list = [ initial_value for i in range(10)]: リストの作成



<スパン <スパン <スパン sample_list = [initial_value]*list_length: 一定の長さのリストを作成します。



<スパン <スパン <スパン <スパン list=list(tuples):コレクションオブジェクトを使ったリストの作成



<スパン <スパン <スパン



アクセス権を一覧表示します。

list_length = len(sample_list): リストの長さを取得する。







リストが更新されました。





list.extend([1,2,3]): リストを拡張する。



<スパン

list=list1+list2:結合のリスト

list.insert(0, "start"): リストに要素を入れる

list.reverse():リストを反転させます。

list.sort():リストをソートする

list.rsort():リストの並べ替え

list[i:j]=[2,3,4]:list インデックスの割り当て





リスト削除。





del sample_list[0]:リストの要素を一つ削除する

list.pop(): リストの最後の要素を削除します。







3.2) 演算子

標準的な演算子:> < ==。



連続型演算子:スライス[::]、[::]、[]、メンバー関係演算子(in、not in)、リンク演算子(+)、繰り返し演算子(*)。



リスト型演算子、リストパース。[]







3.3) 組み込み関数



標準型関数:cmp()



連続型関数:len()、max()、min()、sorted()、reversed()、enumerate()、zip()、sum()、list()、tuple



リスト型組み込み関数:range()





<テーブル

<スパン 列 <スパン テーブル 文字 <スパン 番号

<スパン 仕事 <スパン <スパン 使用方法

list.append(obj)

<スパン リストにオブジェクトを追加する オブジェ

list.count(obj)

オブジェクトを返します オブジェ リスト内の出現回数

list.extend(seq) a

<スパン シーケンスを置く seq の内容を追加します。

list.index(obj, i=0, j=len(list))

<スパン 戻る list[k] == obj は、その k 値、および k の範囲は  i<=k<jです。 それ以外の場合は ValueError 例外事項

list.insert(index, obj)

の場合、インデックスが インデックス の位置にオブジェクトを挿入する。 オブジェ

list.pop(index=-1) a

指定された位置のオブジェクトを削除して返します。デフォルトは最後のオブジェクトです。

list.remove(obj)

<スパン リストからオブジェクトを削除する オブジェ

list.reverse()

<スパン フリップリストの配置

list.sort(func=None, key=None,reverse= False) b

<スパン 指定された方法でリストのメンバーをソートします。 ファンク そして <スパン キー パラメータが指定された場合、指定された方法で要素が比較され、もし フラグが またはリストを逆順にソートする

注意事項 一方、文字列は不変なので、対応する文字列メソッドには返り値があります。list=list.reverse()は使わないでください。listをNoneにしてしまうからです。





考えられるエラー

Pythonでプログラミング中にエラーが出たら Python: 属性エラー - 'NoneType'オブジェクトは属性を持っていません。 

<スパン 原因

リスト操作の戻り値をリストに再代入する




3.4) リストの特殊性

リストはコンテナミュータブル機能を持ち、スタックやキューを構築するために使用することができます。





3.5) 文字列を用いた変換

文字列をリストに変換: リスト (mystring)

リストを文字列に変換: string.jion(mylist,"")

<スパン 4. タプル

概要:タプルの作成、削除、アクセス、および更新を行います。

<スパン



タプル演算子および組込み関数

<スパン つくる、くり返す、つなげる

<スパン メンバーリレーション、スライシング

<スパン 内蔵関数

演算子

リストと同様に、タプルには専用の演算子や組み込み関数がありません。また、ソートやアペンドなど、不変性ゆえにタプルでは実現不可能な操作もタプルでは利用できない。

また、タプルは不変ですが、"repeat"操作を行うことができ、タプルは不変ですが、その中に含まれるmutableオブジェクトはmutableになります。





カンマで区切られ、シンボルで明示的に定義されていない、すべてのマルチオブジェクトのコレクションのデフォルトの型はタプルです。