我正在尝试使用 Python 3 使用 list_one 对 list_two 进行排序并输出到 list_sorted。如果某个字段的值丢失,那么我希望看到一个空值。输出将具有与 list_one 相同数量的项目
list_one = ['one', 'two', 'three', 'four', 'five', 'six', 'seven']
list_two = ['seven', 'five', 'four', 'three', 'one']
list_sorted = []
for i in list_one:
for field in list_two:
if i == field:
list_sorted.append(field)
else:
list_sorted.append(None)
print ('final output:', list_sorted)
所需的输出是:
['one', None, 'three', 'four', 'five', None, 'seven']
但它实际上是在输出:
[None, None, None, None, 'one', None, None, None, None, None, None, None, None, 'three', None, None, None, 'four', None, None, None, 'five', None, None, None, None, None, None, None, None, 'seven', None, None, None, None]
我目前的想法是答案涉及枚举,但我不确定。任何帮助将大大赞赏。
转换list_two
成一个集合,然后根据该元素是否在里面构建一个列表推导式list_two
。
set_two = set(list_two)
list_sorted = [x if x in set_two else None for x in list_one]
print(list_sorted)
['one', None, 'three', 'four', 'five', None, 'seven']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句