2017-02-23 3 views
-1

多次元リスト内の文字列値をどのように管理できますか?多次元リスト内の値を管理する

私はPython Stringsが一度作成されると不変であることを知っています。しかし、私はそれをタプルからリストに変換し、それを多次元リストから削除してから追加しなおしていますが、まだ運がないようにしています。

これは私がしようとするものである:

for b_order in list(signal_order_correction): 
print repr(b_order) 
for a_order in list(signal_order_position): 
    print "A order second" + repr(a_order) 
    if (a_order[0][0] == b_order[0][0] and a_order[0][1] == b_order[0][1] and a_order[0][4] == b_order[0][4]): 
     print "Correcting" 
     signal_order_position = signal_order_position.remove(a_order) 
     a_order = list(a_order[0]) 
     a_order[0][5] = str(a_order[0][5]) 
     # print "repr a" 
     # print repr(a_order) 
     print repr(a_order[5]) 
     # a_order[5] = None 
     # a_order[6] = None 
     # print repr(a_order) 
     a_order[0][5] = b_order[0][5] 
     a_order[0][6] = b_order[0][6] 
     a_order = tuple(a_order) 
     print "corrected by order correction" 
     signal_order_position = signal_order_position.append(a_order) 

をするが、そのは私にエラー

TypeError: 'str' object does not support item assignment 

任意のアイデアを与えますか?

+0

をあなたが例を提供することはできますか?入力と期待される出力の? –

+2

Python文字列は変更不可能なため変更できません。エラーは、文字列内の文字を変更しようとしていることを意味します。これは実行できません。これが必要な場合は、バイト配列を使用できます。 –

+0

@TonyTannous私は 'b_order [0] [5]'から 'a_order [0] [5]'の中に文字列を割り当てることができると思います –

答えて

1

は削除して、メソッドを追加使用して自分の質問を解決:

 for b_order in list(signal_order_correction): 
      print repr(b_order) 
      for a_order in list(signal_order_position): 
       print "A order second" + repr(a_order) 
       if (a_order[0][0] == b_order[0][0] and a_order[0][1] == b_order[0][1] and a_order[0][4] == b_order[0][4]): 
        print "Correcting" 
        signal_order_position.remove(a_order) 
        print "corrected by order correction" 
        signal_order_position.append(b_order) 
関連する問題