Python : From Dictionary to List with IF statement



给定此字典

test = {"a": 0.8, "b": 0.9, "c": 1.0, "d": 1.1, "e": 1.2 }

我想创建两个列表:具有字典值<1和list_b,字典值>=1

list_a = [0.8 , 0.9]
list_b = [1.0 , 1.1 , 1.2] 

我正在使用此代码将字典值转换为列表

list_a = list(test.values())

但是我不知道在哪里插入IF语句。有没有办法在列表函数中输入IF语句?

list_a = list(test.values() if test.values()>=1) #this is wrong

是的,使用列表理解:

list_a = [a for a in test.values() if a >= 1]

在这种情况下,使用[...]list(...)是等价的,但这并不总是正确的。

如果需要,可以使用它。

test = {"a": 0.8, "b": 0.9, "c": 1.0, "d": 1.1, "e": 1.2 }
list_a = []
list_b = []
for i in test:
if test[i] < 1:
list_a.append(test[i])
elif test[i] >= 1:
list_b.append(test[i])
print(list_a)
print(list_b)

我们将字典分成两个列表,键和值我们需要值

test = {"a": 0.8, "b": 0.9, "c": 1.0, "d": 1.1, "e": 1.2 }
keys, values = zip(*test.items())
print(values)

输出:

(0.8, 0.9, 1.0, 1.1, 1.2)

而不是用循环和条件附加列表中的元素:

list1=[]
list2=[]
for x in values:
if x<1:
list1.append(x)
else:
list2.append(x)
print(list1)
print(list2)

输出:

[0.8, 0.9]
[1.0, 1.1, 1.2]

最新更新