是否有一种方法来测试某个值是否在列表中?在Python中,我认为您可以执行类似'if n In myList: print(“值N在列表中”)之类的操作。
我不想使用for循环单独检查每个值,除非这是唯一的选项。我用的是Ti-84加号。
发布于 2017-10-02 04:57:11
如果我想得对的话,这应该是可行的。这非常简单,其中L₁是要搜索的列表,X是要查找的值。
max(not(L₁-X逐步分析:
L₁-X:从列表中的所有内容中减去值。现在,如果这个列表包含一个零,它意味着我们的值在L₁中。not(L₁-X:反转列表中的所有内容。这将将所有零转换为1,将其他一切转换为零。现在,如果这个列表包含一个列表,它意味着我们的值在L₁中。如果列表全部为零,则不是。max(not(L₁-X:获取列表中的最大值。如前所述,如果该值不在L₁内,则列表将为所有零,因此最大值为零。如果L₁的值在内部,则最大值为1。这使得检查就像下面这样简单:
If max(not(L₁-X
Disp "The value was found:",X发布于 2017-10-01 22:34:00
这个搜索的想法来自于TI-Basic开发人员,并且非常出色:
假设您有一个名为x的值和一个名为L的列表。
:If max(1/(1+(abs(L-x))))=1
:Then
//value is in list
:Else
//value is not in list
:End就这样!
以下是它的工作原理:
abs(L-x)
max(1/(1+(abs(L-x))))
:If max(1/(1+(abs(L-x))))=1
1 / 1 + 0是1(减号本身总是0),而0是1 / 1 + x的最大值(当然是正数)。如果最大值小于1,则搜索值不在列表中的是特定的。https://stackoverflow.com/questions/46517466
复制相似问题