Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表映射到引用列表_Python_List_Mapping - Fatal编程技术网

Python 将列表映射到引用列表

Python 将列表映射到引用列表,python,list,mapping,Python,List,Mapping,我正在尽我所能把这件事说清楚。如果我需要澄清什么,请告诉我 我有一个很长的变量列表,列表格式如下- L = ["Fruit", "Transportation", "Housing", "Food", "Education"] 我想把一个较短的列表映射到其中。短列表中没有每个变量,只有长列表中的一些变量。比如说- S = ["Fruit", "Food"] 我感兴趣的是获取短列表映射到L列表时的二进制值 以S为例,它应该是: S = [1, 0, 0, 1, 0] 我尝试了map(S,L)

我正在尽我所能把这件事说清楚。如果我需要澄清什么,请告诉我

我有一个很长的变量列表,列表格式如下-

L = ["Fruit", "Transportation", "Housing", "Food", "Education"]
我想把一个较短的列表映射到其中。短列表中没有每个变量,只有长列表中的一些变量。比如说-

S = ["Fruit", "Food"]
我感兴趣的是获取短列表映射到L列表时的二进制值

以S为例,它应该是:

S = [1, 0, 0, 1, 0]
我尝试了map(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]

通过使用列表理解,获取
L
中的每个值,如果它包含在
S
中,则返回值
1
,如果不是,则返回值
0

m = [1 if subval in S else 0 for subval in L]
结果是:

[1, 0, 0, 1, 0]
试试这个:

[int(x in S) for x in L]
试试这个:

[int(x in S) for x in L]

您可以使用python的列表理解,如下所示:

ans=[1 if x in S else 0 for x in L]

您可以使用python的列表理解,如下所示:

ans=[1 if x in S else 0 for x in L]
我尝试了map(S,L),但很明显列表是不可调用的

但其方法是:

>>> map(S.count, L)
[1, 0, 0, 1, 0]
(本例假设S中没有重复项。如果不是这样,您可以使用
map(list(set(S)).count,L)
。)

我尝试了map(S,L),但很明显列表是不可调用的

但其方法是:

>>> map(S.count, L)
[1, 0, 0, 1, 0]
(本例假设S中没有重复项。如果不是这样,您可以使用
map(list(set(S)).count,L)
。)