新手疑惑:tuple in list这个布尔表达式,为什么会返回一个tuple?
python版本:3.11.4
故事背景
作为一名入了N遍门的新手,又一次开始了基础知识学习,这次下定决心一定要按照教材一笔一划(一键一码)的学完!
当我学到if语句时,碰到了一个示例,是判断一个元素在列表中是否存在。
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
出现转折
我心血来潮,心想如果判断两个元素是否在一个列表中呢?(差生点子多)于是我撸下了以下代码:
requeseted_toppings = ['mushrooms', 'onions', 'pineapple']
a = 'mushrooms', 'onions' in requeseted_toppings
print(a)
print(type(a))
返回结果:
('mushrooms', True)
<class 'tuple'>
WHY?
为什么表达式会返回这样一个tuple?怎么理解这个表达式?:
'mushrooms', 'onions' in ['mushrooms', 'onions', 'pineapple']
建立Tuples的方法
你的语句就是第2种 !
正确的作法如下
或者使用set
我明白了,'mushrooms', 'onions' in requeseted_toppings 这个表达式的意思是(字符串,布尔表达式)这个元组,所以当执行 a = 'mushrooms', 'onions' in requeseted_toppings 的时候,会把计算后的这个元组复制给a变量,所以才会出现 ('mushrooms', True) 这个结果。
a = 'mushrooms', 'onions' in requeseted_toppings
只不过是省略了括号而已。其实你应该也见过,return a, b
这种形式的返回值,这也是tuple
。