给定此字典
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]