标签:指定 切片 迭代 print 函数 包括 isa code 并且
>>> L[:]
[‘Adam‘, ‘Lisa‘, ‘Bart‘, ‘Paul‘]
把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。
迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。
2 无序集合:set
3 无序集合并且具有 key-value 对:dict
for i in range(1, 100)[6::7]:
print i
>>> L = [‘Adam‘, ‘Lisa‘, ‘Bart‘, ‘Paul‘]
>>> for index, name in enumerate(L):
... print index, ‘-‘, name
...
0 - Adam
1 - Lisa
2 - Bart
3 - Paul
enumerate() 函数把:
[‘Adam‘, ‘Lisa‘, ‘Bart‘, ‘Paul‘]
变成了类似:
[(0, ‘Adam‘), (1, ‘Lisa‘), (2, ‘Bart‘), (3, ‘Paul‘)]
因此,迭代的每一个元素实际上是一个tuple:
for t in enumerate(L):
index = t[0]
name = t[1]
print index, ‘-‘, name
索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。
values() 方法实际上把一个 dict 转换成了包含 value 的list。
但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
打印 itervalues() 发现它返回一个
如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。
注意三种方法的思想
L=[]
for x in range(1,10):
for y in range(10):
for z in range(1,10):
if x==z :
L.append(100*x+10*y+z)
print L
print [100 * x + 10 * y + z for x in range(1, 10) for y in range(10) for z in range(10) if x==z]
print [x for x in range(100,1000) if str(x)[0]==str(x)[-1]]
标签:指定 切片 迭代 print 函数 包括 isa code 并且
原文地址:https://www.cnblogs.com/ulrica/p/8934071.html