-
Python中什么是set
dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。
有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
>>> s = set(['A', 'B', 'C'])
可以查看 set 的内容:
>>> print s set(['A', 'C', 'B'])
请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。
因为set不能包含重复的元素,所以,当我们传入包含重复元素的 list 会怎么样呢?
>>> s = set(['A', 'B', 'C', 'C']) >>> print s set(['A', 'C', 'B']) >>> len(s) 3
结果显示,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。
查看全部 -
索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推.
查看全部 -
Python把
0
、空字符串''
和None
看成 False,其他数值和非空字符串都看成 True短路计算:
在计算
a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。在计算
a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b
查看全部 -
1. Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数.
2. % 可以计算余数.
3. 整数和浮点数混合运算的结果是浮点数.
查看全部 -
呵呵
呵呵呵
查看全部 -
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
由于dict是按 key 查找,所以,在一个dict中,key不能重复.
dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
当我们试图打印这个dict时:
>>> print d {'Lisa': 85, 'Adam': 95, 'Bart': 59}
打印的顺序不一定是我们创建时的顺序,而且,不同的机器打印的顺序都可能不同,这说明dict内部是无序的,不能用dict存储有序的集合。
dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。
可以试试用list作为key时会报什么样的错误。
不可变这个限制仅作用于key,value是否可变无所谓
{
'123': [1, 2, 3], # key 是 str,value是list
123: '123', # key 是 int,value 是 str
('a', 'b'): True # key 是 tuple,并且tuple的每个元素都是不可变对象,value是 boolean
}查看全部 -
\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身查看全部 -
优秀,真没认真琢磨过这个逻辑!
查看全部 -
上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。
只用一个 : ,表示从头到尾:
查看全部 -
sum()函数接受一个list作为参数,并返回list所有元素之和。请计算 1*1 + 2*2 + 3*3 + ... + 100*100。
L = []
x = 1
while x <= 100:
L.append( x * x)
x = x + 1
print sum(L)
查看全部 -
有用的函数名称,及其参数 http://docs.python.org/2/library/functions.html#abs
查看全部 -
Python中次方的符号是**两个星号连一起,而不是^
查看全部 -
Python中数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:
一、整数
Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:
1
,100
,-8080
,0
,等等。计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用
0x
前缀和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2
,等等。二、浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x10^9和12.3x10^8是相等的。浮点数可以用数学写法,如
1.23
,3.14
,-9.01
,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
三、字符串
字符串是以
''
或""
括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'
只有a,b,c
这3个字符。四、布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有
True
、False
两种值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来。布尔值可以用
and
、or
和not
运算。and
运算是与运算,只有所有都为 True,and运算结果才是 True。or
运算是或运算,只要其中有一个为 True,or 运算结果就是 True。not
运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。五、空值
空值是Python里一个特殊的值,用
None
表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,我们后面会继续讲到
查看全部 -
while循环每次先判断 x < N,如果为True,则执行循环体的代码块,否则,退出循环。
查看全部 -
Python的 for 循环就可以依次把list或tuple的每个元素迭代出来
查看全部
举报