1、dict的key必须是不可变对象。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key,而list是可变的,就不能作为key。
2、list是有序的,指的是存在位置和显示位置是对应的,set是无序的。
3、要创建一个set,需要提供一个list作为输入集合:
s=set([1,2,3])
4、set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
5、对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
a='abc'
a.replace('a','A')
a
第二行和第三行分别输出:
'Abc'
'abc'
6、只有1个元素的tuple定义时必须加一个逗号。
t=(1,)
t
第二行输出:
(1,)
若定义时不加逗号:
t=(1)
t
第二行输出:
1
7、python中函数可以同时返回多个值,但其实就是一个tuple。
8、迭代器
(1)可以直接作用于for
循环的对象统称为可迭代对象:Iterable。
可以使用isinstance()
判断一个对象是否是Iterable
对象。(2)可以被next()
函数调用并不断返回下一个值的对象称为迭代器:Iterator
。可以使用isinstance()
判断一个对象是否是Iterator
对象。
9、在python中计算绝对值,直接调用abs(),但计算平方根,需要math.sqrt()。
10、变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,Python是动态语言。
11、Python对bytes
类型的数据用带b
前缀的单引号或双引号表示:
x=b'ABC'
要注意区分'ABC'
和b'ABC'
,前者是str
,后者虽然内容显示得和前者一样,但bytes
的每个字符都只占用一个字节。
12、Python做“三元”表达式的一个例子:
i=5 if a>7 else 0
等价为:
if a>7:
i=5
else:
i=0