我想知道以下代码最好使用哪个条件:
以下是我的两份清单:
Matrix = ['kys_q1a1','kys_q1a2','kys_q1a3','kys_q1a4','kys_q1a5','kys_q1a6']
fixedlist = ['kys_q1a2', 'kys_q1a5']
方案1:
for i, topmember in enumerate(Matrix):
for fixedcol in fixedlist:
if topmember in fixedcol:
print i
或者
方案2:
for i, topmember in enumerate(Matrix):
for fixedcol in fixedlist:
if topmember == fixedcol:
print i
我知道比较运算符正在匹配字符串,但“in”是否也在这样做?你知道吗
谢谢
如果要匹配精确的字符串,则使用“==”是精确的。你知道吗
Hi
in
操作符用于成员身份测试,==
操作符用于相等性测试。你知道吗通常我们在sequence对象中使用
in
进行成员资格测试。并且能够在字典、集合、元组、列表、字符串等中进行测试,但根据对象类型,它的行为有所不同。你知道吗词典:
它检查
key
是否存在。你知道吗设置:
在引擎盖下,它检查键是否存在,设置实现与具有一些伪值的字典相同。你知道吗
列表和元组:
对于列表和元组类型,当且仅当存在索引i使得x==y[i]为真时,y中的x为真。你知道吗
字符串:
当且仅当x是y的子串时,检查y中的子串是否存在,例如x为真。等效测试为y.find(x)!=-1
使用定义的数据类型:
定义
__contains__()
方法的用户定义类,当且仅当y.__contains__(x)
为真时,y中的x为真。你知道吗我希望你能弄清楚
in
的用法。你知道吗让我们重写您的代码片段:
最后让我们来看看一些等式测试:
==
:测试字符串
topmember
是否包含在fixedcol
中。你知道吗测试字符串
topmember
是否等于fixedcol
。你知道吗所以,
'a' in 'ab'
会计算True
。但是'a' == 'ab'
会计算False
。你知道吗由于这两个变体执行不同的操作,我们无法回答这个问题。您需要选择执行所需操作的选项。你知道吗
你的代码可以简化很多。第二种选择可以简化为:
您还可以使用列表理解来查找匹配的索引:
如果您只需打印索引而不是将其存储在列表中,您可以这样编写:
这是一个品味的问题,你喜欢密集的清单理解一行,或更详细的版本上面。你知道吗
相关问题 更多 >
编程相关推荐