5 python
说我有:
t = (
('dog', 'Dog'),
('cat', 'Cat'),
('fish', 'Fish'),
)
Run Code Online (Sandbox Code Playgroud)
我需要检查一个值是否在嵌套元组的第一位(即小写位).我怎样才能做到这一点?大写值无关紧要,我想只搜索小写值中的字符串.
if 'fish' in t:
print "Fish in t."
Run Code Online (Sandbox Code Playgroud)
不行.
如果没有使用if语句进行for循环,有没有一种好方法呢?
Ste*_*202 10
可以通过指定索引来提取元组的元素:('a', 'b')[0] == 'a'.您可以使用列表推导来迭代某些可迭代的所有元素.元组也是可迭代的.最后,any()告诉给定iterable中的任何元素是否计算结果True.将所有这些放在一起:
>>> t = (
... ('dog', 'Dog'),
... ('cat', 'Cat'),
... ('fish', 'Fish'),
... )
>>> def contains(w, t):
... return any(w == e[0] for e in t)
...
>>> contains('fish', t)
True
>>> contains('dish', t)
False
Run Code Online (Sandbox Code Playgroud)
尝试:
any('fish' == tup[0] for tup in t)
Run Code Online (Sandbox Code Playgroud)
编辑:斯蒂芬是对的;固定“鱼”== tup[0]。另请参阅他更完整的答案。
| 归档时间: |
|
| 查看次数: |
4912 次 |
| 最近记录: |