检查每个列表元素是否与 Python 中的特定字符串匹配的简单方法
Simple Way to Check Each List Element for Match with Particular String in Python
我在 Python 中有以下列表:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
我想要 return 一个逻辑值列表,True
以防 my_list 中对应的列表元素等于“是”并且 False
如果 my_list 中相应的列表元素等于“否”。
期望的输出:
my_list_logical = [True, True, False, True, False, True]
我通常在 R 中编程,在 R 中这可以使用以下代码轻松完成:
my_list == "yes"
我在 this thread 中找到了 Python 解决方案。然而,这个线程的解决方案非常复杂,我不敢相信 Python 比 R.
复杂得多。
是否有一种简单的方法可以return基于我的输入向量的逻辑列表?
您可以使用列表理解:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
logical = [item=='yes' for item in my_list]
输出:
[True, True, False, True, False, True]
或者,您甚至可以使用地图:
logical = list(map(lambda x: x=='yes', my_list))
最好的答案可能是使用包 numpy
。 Numpy 数组的行为类似于 R 向量。
import numpy as np
my_list = np.array(["yes", "yes", "no", "yes", "no", "yes"])
my_list == "yes"
array([ True, True, False, True, False, True])
你可能会很用到列表理解:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
result = [item == "yes" for item in my_list]
产生
[True, True, False, True, False, True]
是的,这是我能想到的最合乎逻辑的方式
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
my_list_logical = []
for i in my_list:
if i == “yes”:
my_list_logical.append(True)
else:
my_list_logical.append(False)
您可以使用语法为 map(<function>, <iterable>)
的 map()
函数。但是,您必须将其编码为 list()
才能产生结果,例如:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
my_list_logical = list(map(lambda x: x == "yes", my_list))
print(my_list_logical)
输出
[True, True, False, True, False, True]
我在 Python 中有以下列表:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
我想要 return 一个逻辑值列表,True
以防 my_list 中对应的列表元素等于“是”并且 False
如果 my_list 中相应的列表元素等于“否”。
期望的输出:
my_list_logical = [True, True, False, True, False, True]
我通常在 R 中编程,在 R 中这可以使用以下代码轻松完成:
my_list == "yes"
我在 this thread 中找到了 Python 解决方案。然而,这个线程的解决方案非常复杂,我不敢相信 Python 比 R.
复杂得多。是否有一种简单的方法可以return基于我的输入向量的逻辑列表?
您可以使用列表理解:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
logical = [item=='yes' for item in my_list]
输出:
[True, True, False, True, False, True]
或者,您甚至可以使用地图:
logical = list(map(lambda x: x=='yes', my_list))
最好的答案可能是使用包 numpy
。 Numpy 数组的行为类似于 R 向量。
import numpy as np
my_list = np.array(["yes", "yes", "no", "yes", "no", "yes"])
my_list == "yes"
array([ True, True, False, True, False, True])
你可能会很用到列表理解:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
result = [item == "yes" for item in my_list]
产生
[True, True, False, True, False, True]
是的,这是我能想到的最合乎逻辑的方式
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
my_list_logical = []
for i in my_list:
if i == “yes”:
my_list_logical.append(True)
else:
my_list_logical.append(False)
您可以使用语法为 map(<function>, <iterable>)
的 map()
函数。但是,您必须将其编码为 list()
才能产生结果,例如:
my_list = ["yes", "yes", "no", "yes", "no", "yes"]
my_list_logical = list(map(lambda x: x == "yes", my_list))
print(my_list_logical)
输出
[True, True, False, True, False, True]