list の要素の置き換え
python listの要素の置き換えをしようとしています。
value1 = ['A','B','B','B','B','A','A','A','A','B','A','A','A','A','A','A','B', 'B','B', 'A', 'A']
value1v= ['B' if x=='A' else 'A' for x in value1 ]
print(value1)
print(value1v)
print('')
value2 = ['A','B','B','B','B','A','B','B','A','B','A','A','B','A','A','B','B', 'A','B', 'A', 'A']
value2v= ['B' if x=='A' else 'A' for x in value1 ]
print(value2)
print(value2v)
結果は以下のようになっています。
['A', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'A', 'B', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'A', 'A']
['B', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'B', 'B']
['A', 'B', 'B', 'B', 'B', 'A', 'B', 'B', 'A', 'B', 'A', 'A', 'B', 'A', 'A', 'B', 'B', 'A', 'B', 'A', 'A']
['B', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'B', 'B']
問題は,value2のいくつかの'B'がそのままvalue2vで'B'のまま出てきていることです。
'A'に変換されているものもありますので、内包表記に問題はないと思います。
環境は:
import sys
print(f'python:{sys.version}')
print(f'numpy :{np.__version__}')
python:3.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]
numpy :1.21.5
よろしくお願い致します。
0