将列表映射到参考列表中
问题描述:
我试图尽可能地使这一点尽可能清楚。请让我知道我是否应该澄清任何事情。将列表映射到参考列表中
我的变量列表中按以下格式的长列表 -
L = ["Fruit", "Transportation", "Housing", "Food", "Education"]
我想一个较短的列表映射到它。较短的列表中没有每个,只有长列表中的一些变量。例如 -
S = ["Fruit", "Food"]
我感兴趣的东西是获取短名单的二进制值,而它映射成L列表。
随着S作为一个例子,它应该是:
S = [1, 0, 0, 1, 0]
我试图地图(S,L),但显然列表不是可调用。
TypeError: 'list' object is not callable
什么是一个很好的方法来做到这一点?谢谢!!
答
通过使用列表理解这需要每个价值L
,如果它内部包含S
它返回的1
值,并且,如果没有,则返回0
值:
m = [1 if subval in S else 0 for subval in L]
结果是:
[1, 0, 0, 1, 0]
答
您可以使用Python的列表理解如下:
ans=[1 if x in S else 0 for x in L]
答
我试过地图(S,L),但显然列表是不可调用的。
但其方法是:
>>> map(S.count, L)
[1, 0, 0, 1, 0]
(这一个假设有S中不存在重复如果不是这种情况,例如,您可以使用map(list(set(S)).count, L)
代替。)
+0
谢谢。这真的很酷! – achimneyswallow
谢谢。这也很好。 – achimneyswallow