【发布时间】:2021-11-12 13:39:14
【问题描述】:
假设我有一个包含 N 个元组的列表,其中元组首先包含一个字符串,然后是一个浮点数,例如 ('cat', 0.5)。它们的组织方式使得它们在列表中出现的越早,第二个元素的浮动大小就越大。
假设我要完成以下工作:
- 测试元组列表是否只包含一个元组
- 测试元组列表的第一个元素是否为字符串
- 如果元组列表包含多个元组,第一个元组的浮点数是否至少是第二个元组的浮点数的两倍?
如果 1、2 为真或 2、3 为真,则测试通过。
我尝试编写如下代码:
if isinstance(tuples[0][0],str):
if len(tuples) > 1:
if tuples[0][1] > 2 * tuples[1][1]:
print('Success')
elif len(tuples) == 1:
print('Success')
有没有一种代码不那么臭的方法,而不必对成功条件进行两次编码?
【问题讨论】:
-
增加一个测试通过计数器,如果大于或等于两个,那么你就成功了
-
if <2> and (<1> or <3>)