0

我有这个清单:

['79.9', '79.9', '79.9', '79.9', '103.2', '103.2']

我想用这个字典中的相应值替换列表项:

ValueDict = {
    "243": "0",
    "219.70000000000002": "1",
    "196.4": "2",
    "173.1": "3",
    "149.79999999999998": "4",
    "126.5": "5",
    "103.2": "6",
    "79.9": "7",
    "56.59999999999999": "8",
    "33.3": "9",
    "10": "10",
}

所以结果将是这样的列表: [7, 7, 7, 7, 6, 6]

我怎样才能做到这一点?

4

6 回答 6

2
final_list = [ValueDict[i] for i in your_list if i in ValueDict]
于 2021-08-12T12:14:36.060 回答
0
a = ['79.9', '79.9', '79.9', '79.9', '103.2', '103.2']
b = {
    "243": "0",
    "219.70000000000002": "1",
    "196.4": "2",
    "173.1": "3",
    "149.79999999999998": "4",
    "126.5": "5",
    "103.2": "6",
    "79.9": "7",
    "56.59999999999999": "8",
    "33.3": "9",
    "10": "10",
}
c = [b.get(i, i)for i in a]
c
['7', '7', '7', '7', '6', '6']
于 2021-08-12T12:16:29.567 回答
0

这应该有效:

[int(ValueDict[x]) for x in list1] 

[7, 7, 7, 7, 6, 6]

:)

于 2021-08-12T12:23:48.357 回答
0

类似于下面的东西

lst = ['79.9', '79.9', '79.9', '79.9', '103.2', '103.2']
ValueDict = {
    "243": "0",
    "219.70000000000002": "1",
    "196.4": "2",
    "173.1": "3",
    "149.79999999999998": "4",
    "126.5": "5",
    "103.2": "6",
    "79.9": "7",
    "56.59999999999999": "8",
    "33.3": "9",
    "10": "10",
}
new_lst = [ValueDict.get(x,'-1') for x in lst]
print(new_lst)
于 2021-08-12T12:14:26.180 回答
0

你可以用list comprehension来做到这一点。

final_list = [ValueDict[value] for value in my_list] 
于 2021-08-12T12:14:35.320 回答
0

用于enumerate向列表添加计数器,然后检查元素是否在字典中,并调用值

for i,j in enumerate(l):
    if j in ValueDict:
        l[i]=ValueDict[j]
print(l)

输出:

['7', '7', '7', '7', '6', '6']
于 2021-08-12T12:13:57.493 回答