如何使用切片检查两个列表在特定索引处是否具有相同的值?
L1 = ['X00013', 9654123, 4.1, 'No', 'No', 1.83, 3.8, 0.01, 90.01]
L2 = ['X00014', 2021230, 1.23, 'Yes', 'No', 1.86, 3.65, 0.15, 0.00001]
我知道如何检查
if L1[3] == L2[3]:
print("YES")
但我不知道如何同时检查多个位置/索引:
我正在寻找同时检查指数3,4和7的两个列表的东西。
我可以使用operator和itemgetter
:
itemgetter(3,4,7)(L1) == itemgetter(3,4,7)(L2)
但我希望简单的直接解决方案切片列表。谢谢你的帮助。
答案 0 :(得分:1)
您可以遍历所需索引列表。
places = (3, 4, 7)
if [L1[i] for i in places] == \
[L2[i] for i in places]:
print "YES"
else:
print "NO"
当然,这简化为简单if all
,但上述内容可能有助于您理解逻辑。
print all(L1[i] == L2[i] for i in places)
答案 1 :(得分:0)
你只需要一个基本的循环和一些条件就可以做到这一点:
def check_places(L1, L2, places):
for i in places:
if i >= len(L1) or i >= len(L2) or L1[i] != L2[i]:
return False
return True
其工作原理如下:
>>> L1 = ['X00013', 9654123, 4.1, 'No', 'No', 1.83, 3.8, 0.01, 90.01]
>>> L2 = ['X00014', 2021230, 1.23, 'Yes', 'No', 1.86, 3.65, 0.15, 0.00001]
>>> places = (3, 4, 7)
>>> check_places(L1, L2, places)
False