python - 当某些值是无数据类型时,如何编写一个函数来将列表列表中的值与额外条件进行比较
问题描述
我想编写一个函数,将列表列表中的值与额外条件进行比较,即当列表中有“无”时,该特定元素总是“匹配”。v_ins 和 r_ins 是列表的列表。v_ins
可能有一个None
,但r_ins
总是有整数。
我已经尝试了以下代码。我不知道在“elif”之后该怎么办。此外,列表只会在列表中的第一个列表中具有值(例如v_ins = [[1,None,1]]
,但它永远不会像v_ins = [[1,None][None,0]]
)
def comparestates():
global v_ins, r_ins
if v_ins == r_ins:
print ("state match")
elif for j in range (0,len(v_ins[0])):
"dont know what should come here"
print ("state match")
v_ins = [[1,None,1]]
r_ins = [[1,0,1]]
comparestates()
预期的结果是打印“状态匹配”,因为 v_ins 的第二个元素中的“无”意味着它将始终与 r_ins 的第二个元素“匹配”。
解决方案
我假设 v_ins 和 r_ins 只有一个列表元素。
def compare(v, r):
if len(v) != len(r):
return False
for i, j in zip(v, r):
if i is not None and i != j:
return False
return True
def comparestates():
global v_ins, r_ins
if compare(v_ins[0], r_ins[0]):
print("state match")
else:
print("no match")
v_ins = [[1,None,1]]
r_ins = [[1,0,1]]
comparestates()
推荐阅读
- c++ - std::unordered_map 迭代器尊重问题
- android - 当我使用延迟时,我应该从主线程切换到默认线程还是 IO 线程
- reactjs - 我如何使用 react js axios 停止此计数器并将最终值放入数据库中
- javascript - 当在 javascript 中调用时值上升 +0.01 的函数不起作用(初学者)
- linux - 在新的 Ubuntu VPS 上安装 cpanel 时出现 Tar 错误
- java - 为什么 String x = "abc".toUpperCase() 中的 "abc" 不包含在实习生池中?
- java - CORS 策略和 Spring Security
- node.js - Stripe 在结束前取消订阅
- c# - 如何在 ASP.NET Core 身份验证中配置对不同域的 OAuth 回调
- pandas - 在 DataFrame 中合并具有相同索引的行