Python 函数的可变参数、切片、迭代和列表生成式
2020-06-28 15:04:15 来源:易采站长站 作者:易采站长站整理
for index, name in zip([10, 20, 30], ['A', 'B', 'C']): # [(10, 'A'), (20, 'B'), (30, 'C')] print(index + ' - ' +name) # 利用 zip()函数生成新列表进行迭代
迭代 dict 的 value 值: dict 对象有一个
values() 方法,这个方法把 dict 转换成一个包含所有value 的 list,这样,我们迭代的就是 dict 的每一个 value。还有一个
itervalues() 方法,用
itervalues() 方法替代
values() 方法,迭代效果完全一样。不过在Python 3.6之后,itervalues() 方法已经被移除。
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
for item in d.values():
print(item)
for item in d.itervalues():
print(item)
迭代 dict 的
(key, value)值,dict 的
items() 方法把 dict 对象转换成了包含 tuple 的 list,我们对这个 list 进行迭代,可以同时获得key 和 value:
for key, value in d.items():
print(key, ':', value)
4. 列表生成式
为了避免生成复杂列表太过于繁琐,python 通过一个简单的列表生成式实现:
[x * x for x in range(1, 11)] # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]加入条件过滤:有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。
def toUppers(L):
return [x.upper() for x in L if isinstance(x, str)] # isinstance(x, str) 判断x是否为字符串print toUppers(['Hello', 'world', 101])
循环嵌套:for循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。
print [x*100+y*10+z for x in range(1, 10) for y in range(0,10) for z in range(0, 10) if x==z]# 利用 3 层for循环的列表生成式,找出对称的 3 位数。
作者:如化雨
暂时禁止评论













闽公网安备 35020302000061号