3,关于if elif else while for break continue while/true以及语句缩排在这就不说了
比较运算符:
x == y x != y 内容相等
x is y x is not y 是同一个对象
x in y x not in y 是否在容器中
1)大小比较(>和>>zip(names,ages)
>>>[('name1',1),('name2',2),('name3',3)]
zip函数可以将两个序列压缩在一起,返回一个元组的列表。
for name,age in zip(names,ages):
print name,age
zip函数可以作用于任意多的序列,重要的一点是可以应付不等长序列,当最短的序列用完是就停止,例如上述若names有10个元素而ages只有3个元素。
编号迭代:
有时候想要迭代序列中的对象,还想要同时获取到这个对象当前的索引。
例如,要将列表:
strings = ['abcc','fgbccad','abca','ftbcd']中所有包含bcc子串的字符串替换为‘hello’,即变为
strings = ['hello','hello','abca','ftbcd']
在迭代每个对象时,比较这个字符串是否含bcc子串,若含,则将整个字符串替换为hello,这种情境下就需要得知当前对象的索引。
方案1:
for string in strings:
if('bcc' in string):
index = strings.index(string)
strings[index] = 'hello'
方案2:
index = 0
for string in strings:
if 'bcc' in string:
string[index] = 'hello'
index += 1
方案3:编号迭代工具enumerate()函数
enumerate(strings)提供了 索引-值 对
例如:
for index,string in enumerate(stings):
print index,string
结果:
0 abcc
1 fgbccad
2 abca
3 ftbcd
所以本例可以:
for index,string in enumerate(stings):
if('bcc' in string):
string[index] = 'hello'
4,列表推导式-轻量级循环
利用其它列表创建新列表的一种方式。
>>>[x*x for x in range(4)]
>>>[0,1,4,9]
>>>[x*x for x in range(10) if x % 3 == 0]
>>>[0,9,36,81]
>>>[(x,y) for x in range(2) for y in range(3)]
>>>[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]