python - 缩短重复相同条件但变量不同的代码行
问题描述
我的脚本中有这些代码行:
if x.name or x.number or x.address:
if x.name and x[0] == x.name:
result = x.name
elif x.number and x[0] == x.number:
result = x.number
elif x.address and x[0] == x.address:
result= x.address
这是在一个函数中,它接受列表 varx
并检查这些属性(name, number, address)
是否已分配到脚本其余部分的其他位置。
在这种情况下,x
可以将所有三个属性都分配给它,但是当调用该函数时,当前只有其中一个正在处理。这x[0]
是用于准确检查当前正在调用哪个。
现在我不喜欢我写这个的方式,因为我只是在重复这些行,但使用了其他属性。我想不出如何写这个更短,有人有想法吗?
解决方案
假设您的原始代码有效 - 这将是等效的:
if (x[0] in [x.name, x.number, x.address]) and x[0]:
result = x[0]
推荐阅读
- r - 从循环中计算每个新数据帧的行数并将所有内容保存在一个循环中
- powershell - 如何在运行空间池中的 PowerShell 中连接和验证代理
- git - 修复或撤消标签上的分离头
- c# - 在 C# 中设置参数类型的最佳方法
- jquery - Datepicker 在禁用周末时自动设置第二天的日期:如果是星期五,则显示星期一
- python - 使用 Python Twitter Api 的 base64 太长
- python - Python Asyncio 脚本未完成
- java - ArrayList 的通用实现与没有通用的旧实现之间的区别
- macos - Ionic 无法在 macos 12 (Monterey) 中构建
- next.js - NextJS 在服务器上返回 _error 页面,但在客户端返回登录页面?