简单元素循环
>>> l = [43,65,78,900]>>> for item in l:
... print(item)
...
43
65
78
900
for 循环简单带序号
list1 = [11,33,44,77,88]
for i,v in enumerate(list1):
print('序号:',i, '值:',v)
序号: 0 值: 11
序号: 1 值: 33
序号: 2 值: 44
序号: 3 值: 77
序号: 4 值: 88
要序号从1开始这样写。从2,其它数,把1改成这个数就行.
list1 = [11,33,44,77,88]
for i,v in enumerate(list1,1):
print('序号:',i, '值:',v)
>>> list1 =[1,3,4,79]
>>> [elem*2 for elem in list1] #这前后的[ ] 两个括号不能少
[2, 6, 8, 158]
zip函数使用
>>> b = [12,54,78,95]
>>> a = [56,344,677,988]
>>> zip(a,b)
<zip object at 0x0000000002CF8E88>
>>> zipped = zip(a,b)
>>> list(zipped)
[(56, 12), (344, 54), (677, 78), (988, 95)]
>>> zipped2 = zip(range(len(a)),a)
>>> zipped2 #这里如果是python2的话就直接是值,但在python3里返回的是一个对象(地址),有list强制转换一个就可以显示成List列表.
<zip object at 0x0000000002D2B3C8>
>>> list(zipped2)
[(0, 56), (1, 344), (2, 677), (3, 988)]
>>> zipped2 = list(enumerate(a)) #另一种表达方式
>>> zipped2
[(0, 56), (1, 344), (2, 677), (3, 988)]
从1开始的表达
>>> zip(range(1,len(a)),a)
<zip object at 0x0000000002D2B3C8>
>>> zipped = zip(range(1,len(a)),a)
>>> zipped
<zip object at 0x0000000002D2B7C8>
>>> list(zipped)
[(1, 56), (2, 344), (3, 677)]
>>> zipped = list(enumerate(a,1))
>>> zipped
[(1, 56), (2, 344), (3, 677), (4, 988)]
and 和 & 的区别
and是比较前后两个表达式是否都是逻辑上的True。而“&”则是检查两个表达式(当时用True/False值)是否都为 True。
and,例如:ex1 and ex2,当ex1为逻辑上的True时,该表达式的值就跟ex2是相同的。因为,In Python, empty built-in objects are typically treated as logically False while non-empty built-ins are logically True。这句话,python里面,只要不是一个空的对象,逻辑上就是True,否则,如果是空的或者0,就是逻辑上的False。对于&,则是检测两个值是否都为True,若是,返回True;否则,返回False。当进行向量数据的逻辑运算时,可以使用numpy 和 &。