[问与答]为什么 'a' in ('abc') 是True 而 'a' in ['abc'] 是False呢?
Why is ‘a’ in (‘abc’) True while ‘a’ in [‘abc’] is False? 原文链接
问
在使用解释器的时候,表达式'a' in ('abc') 返回是True,而 'a' in ['abc'] 返回的是Fasle, 有人可以解释这里发生了什么吗?
答
这个问题可能是很多python 新手会有的疑惑, 到底是为啥来着呢?其实这里主要要搞明白的是几个点
- ('abc')是不是一个元组 ?
- ('abc')到底是什么?
- 'a'是- ['abc']的一个元素吗?
In [1]: 'a' in ('abc')
Out[1]: True
In [2]: ('abc')
Out[2]: 'abc'
In [3]: ('abc') == 'abc'
Out[3]: True
In [4]: 'a' in ['abc']
Out[4]: False
In [5]: 'a' in ['abc'][0]
Out[5]: True
In [6]: ['abc'][0]
Out[6]: 'abc'看完上面的代码其实就应该明白了
- ('abc')其实就是- 'abc', 所以- 'a'当然在- 'abc'中了
- ('abc')不是元组,元组的写法应该是- ('abc', ), 刚接触python的人有时候会忘了写那么一个逗号。
- ['abc']是个list类型,- 'abc'只是其中一个元素,- 'a'当然不等于- 'abc'啦,所以返回就是False
- ['abc'][0]其实就是- 'abc',- 'a' in 'abc'当然是True
记住这个小例子,对一个元素的元组的写法就不容易忘了。
[问与答]为什么 'a' in ('abc') 是True 而 'a' in ['abc'] 是False呢?的更多相关文章
- OpenGL快问快答
		OpenGL快问快答 本文内容主要来自对(http://www.opengl.org/wiki/FAQ)的翻译,随机加入了本人的观点.与原文相比,章节未必完整,含义未必雷同,顺序未必一致.仅供参考. ... 
- Oracle百问百答(四)
		Oracle百问百答(四) 31.怎样查看某用户下的表? select table_name from all_tables where owner=upper('jhemr'); 32.怎样查看某用 ... 
- Oracle百问百答(二)
		Oracle百问百答(二) 11. nvl函数有什么用? NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值,否则 ... 
- Oracle百问百答(一)
		Oracle百问百答(一) 01.如何查看oracle的版本信息? 02.如何查看系统被锁的事务信息? 03.怎么获取有哪些用户在使用数据库? 04. 数据表中的字段最大数是多少? 表或视图中的最大列 ... 
- 微信小程序参数二维码6问6答
		微信小程序参数二维码[基础知识篇],从6个常见问题了解小程序参数二维码的入门知识. 1.什么是小程序参数码? 微信小程序参数二维码:针对小程序特定页面,设定相应参数值,用户扫描后进入相应的页面. 2. ... 
- k3 Bos开发百问百答
		K/3 BOS开发百问百答 (版本:V1.1) K3产品市场部 目录 一.基础资料篇__ 1 [摘要]bos基础资料的显示问题_ 1 [摘要]单 ... 
- Java 面试题问与答:编译时与运行时
		Java 面试题问与答:编译时与运行时 2012/12/17 | 分类: 基础技术, 职业生涯 | 5 条评论 | 标签: RUNTIME, 面试 分享到:58 本文作者: ImportNew - 朱 ... 
- Vue.js 一问一答
		Vue.js 一问一答 记录一下在学习 Vue 过程中给自己问的一些问题,持续更新中... Vue.js 的核心是什么? 官网:Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 ... 
- Android View事件机制 21问21答
		原文: http://www.cnblogs.com/punkisnotdead/p/5179115.html#3358859 1.View的坐标参数 主要有哪些?分别有什么注意的要点? 答:Left ... 
随机推荐
- 单页应用动态设置页面title
			1.适用场景:所有通过router路由的单页应用. 2.示例代码:本文以vue-router为例. 在router.js中: let router = new Router({ routes: [ { ... 
- AJAX 向后台发送带 List 集合的对象
			现有基类: public class School { int name; int address; List<Student> students = new ArrayList<S ... 
- 转载c++常忘的知识点
			C++的一些知识点比较零碎,下面清单的形式做一些记录与归纳,以供参考. 1.赋值操作符重载(深复制): (1)由于目标对象可能引用了以前的一些数据,所以应该先delete这些数据: (2)注意到对象可 ... 
- ubuntu 英文系统下安装中文输入法
			环境:ubuntu15.10 64位 英文版 软件:fcitx输入法框架,及多种拼音输入法 linux的英文系统会比中文少很多麻烦,特别是在命令行输入路径的时候,如果路径是中文将是一件很头疼的问题.但 ... 
- vue+node.js+webpack开发微信公众号功能填坑——组件按需引入
			初次开发微信公众号,整体框架是经理搭建,小喽喽只是实现部分功能,整体页面效果 整个页面使用两个组件:布局 FlexBox,搜索框 Search,demo文档 http://vue.ydui.org/d ... 
- Flume 读取RabbitMq消息队列消息,并将消息写入kafka
			首先是关于flume的基础介绍 组件名称 功能介绍 Agent代理 使用JVM 运行Flume.每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks. Client ... 
- Tinyhttpd for Windows
			TinyHTTPd forWindows 前言 TinyHTTPd是一个开源的简易学习型的HTTP服务器,项目主页在:http://tinyhttpd.sourceforge.net/,源代码下载:h ... 
- Shell脚本了解
			一.什么是Shell Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面, ... 
- [Matlab]技巧笔记
			1.将字符串作为Matlab命令执行 md = 'dir'; eval(md); 2.将字符串作为系统命令执行 md = 'dir'; system(md); 3.使显示图像的坐标轴使用相同的度量单位 ... 
- Linux下C/C++程序调试基础(GCC,G++,GDB,CGDB,DDD)
			在写程序的时候,经常会遇到一些问题,比如某些变量计算结果不是我们预期的那样,这时我们需要对程序进行调试.本文主要介绍调试C/C++在Linux操作系统下主要的调试工具. 在Linux下写程序,C/C+ ... 
