70814


2つリストがあり，一つはデータIDを表す数字が入った長さ2708のリスト`A`があります．  
また，もう一つはデータを表す長さ21664のリスト`B`です．`B`に格納されているデータの値の幅は0~2707です．  
この2つのリスト`A,B`を比較して，`B`の値を`A`のリスト番号に一致するデータIDと入れ替えるというコードを作りたいです．  
以下が例です．

[code]

    A = [626531, 1131180, 1130454, 1131184, 1128974, 1128975, 1128977, 1128978, 117328, 24043]
    B = [2, 3, 6, 1, 1, 9, 0]
    
[/code]

期待する出力

> lst = [1130454, 1131184, 1128977, 1131180, 1131180, 24043, 626531]

いろいろ試しましたが，思うようにいきません． 解決方法が分かる方いましたら回答お願いします．


CC BY-SA 4.0
2020-09-29T12:08:43.497
70813
2020-09-29T23:28:02.990
36750
question
python python3
2つのリストを比較して値を入れ替える方法

[code]

    lst=[A[x] for x in B]
    
[/code]

でいいんじゃないですかね


CC BY-SA 4.0
2020-09-29T12:34:50.787
70814
2020-09-29T23:28:02.990
2020-09-29T23:28:02.990
32986
18637
70813
answer


参考までに、`numpy.array` の場合、list や tuple で indexing が可能です。

[code]

    >>> import numpy as np
    >>> lst = np.array(A)[B].tolist()
    >>> lst
    [1130454, 1131184, 1128977, 1131180, 1131180, 24043, 626531]
    
[/code]


CC BY-SA 4.0
2020-09-29T13:49:52.377
70817
2020-09-29T13:49:52.377
70813
answer