一、通过切片实现循环迭代访问列表时直接修改列表的值
例如:
words=["cat","window","defenstrate"]
for w in words[:]:
if len(w)>6:
words.insert(0,w)
print(words)
如下案例就没有利用切片直接通过循环在循环内修改,程序就会卡住无法运行
words=["cat","window","defenstrate"]
for w in words:
if len(w)>6:
words.insert(0,w)
print(words)
注意:With for w in words:, the example would attempt to create an infinite list, inserting defenestrate over and over again.
二、range() function 随机函数
2.1例子
>>> for i in range(5):
print(i)
0
1
2
3
4
>>>
随机生成5个整数
2.2列子
>>> for x in range(2,3):
print(x)
2
>>>
2.3示例
>>> for x in range(0,10,2):
print(x)
0
2
4
6
8
>>>
range() 和len() 的结合使用
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
0 Mary
1 had
2 a
3 little
4 lamb
以上代码可以通过内置函数enumerate函数来实现
a = ['Mary', 'had', 'a', 'little', 'lamb']
for x,y in enumerate(a):
print(x,y)
通过list()函数将迭代器生成一个列表
function list() is another; it creates lists from iterables:
例如:
list(range(5))
for else break 例子(质数)
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(n, 'equals', x, '*', n//x)
... break
... else:
... # loop fell through without finding a factor
... print(n, 'is a prime number')
函数内的参数
def func(*yuanzucanshu):
print(yuanzucanshu)
func("a")
结果时一个元祖
('a',)
func()
结果时空元祖
()
**参数名称
>>> def func(**zidian):
print(zidian)
>>> func()
参数的调用
>>> func(name="zhangsan")
{'name': 'zhangsan'}
>>>
元祖参数与字典参数的在函数中的引用,以及反向引用
Lambda Expressions
lambda x,y:x+y