python怎样遍历.py的内容?

Python07

python怎样遍历.py的内容?,第1张

列表的遍历方法一:通过for循环li = [i for i in range(10)]for i in li:print(i)方法二:通过while循环# 虽然for循环已经很好用了,但是在有些情况下,使用while循环可以更灵活# 只需要将判断条件设置为小于列表长度,即可完成列表通过while循环的遍历li = [i for i in range(10)]i = 0while i <len(li):print(li[i])i += 1方法三:配合enumerate使用,同时获取列表的索引li = [i + 1 for i in range(10)] # 此时,i为一个元组,元组的第一个元素为索引,第二个元素为原列表的元素# 因此,在遍历列表的同时,需要同时获取坐标的情况下,可以配合enumerate()一起使用for i in enumerate(li):print(i)字典的遍历字典的遍历和列表有一些不同,因为字典有键和值两个关键部分。默认的遍历情况,是遍历字典的键,当然,可以通过字典的键取得值,也可以直接遍历值,或者直接遍历键和值。方法一:直接使用for循环直接使用for循环对一个字典进行遍历,默认取得的是字典的键dt = {i: i + 1 for i in range(10)} for i in dt:print("字典的键:", i) # 字典的键print("字典的值:", dt[i]) # 字典的值方法二:遍历dict.keys()这种方法与方法一的效果其实是一样的,同样是获取字典的键dt = {i: i + 1 for i in range(10)} for i in dt.keys():print("字典的键:", i) # 字典的键print("字典的值:", dt[i]) # 字典的值方法三:遍历dict.values()这种方法与方法一和二很不相同,因为它只获取了字典的值dt = {i: i + 1 for i in range(10)} # 这是很特殊的方法,因为它没有获取字典的键for i in dt.values():print("字典的值:", i) # 此时i不再是字典的键,而是值方法四:遍历dict.items()这种方法一般来说要更好,因为它同时获取到了字典的键和值,而且性能上要高于先获取键,再通过键获取对应的值dt = {i: i + 1 for i in range(10)} for i in dt.items():print("字典的键值对:", i)print("字典的键:", i[0])print("字典的值:", i[1])总结1,列表的遍历比较简单,除了配合enumerate()使用,可以同步获取索引以外,并没有特别值得纠结的。2,字典的遍历方法比较多,其中第四种是能适用于一切情况的,前两种也可以适用于一切情况,但是如果你同时需要获取键和值,性能不如第四种要好。第三种比较特别,除非你真的只需要字典的值,否则它在多数情况下是不能够满足需求的。

记得 for ...... : 有冒号,循环内容要缩进(indent)来表示它属于当前循环。

缩进约定俗成打4个空格。

range 能生成一系列数字。几乎所有语言在数字范围上都遵循[left, right)的做法,故 range(left, right) 会生成一系列从left到right-1、步长为1的数字。

其他用法:

用法:

注意:

在上面的复制中, letters_copy = letters[:] 将拷贝一份 letters 的内容到 letters_copy 里, 如果你写 letters_copy = letters ,这将把 letters 赋给 letter_copy 从而使两者指向同一个变量:

可以看到 letters_copy = letters 将使两者成为同一个变量。

元组使用()而不是[],我们可以改变整个元组,而不能改变元组的元素。

当然是元组了,元组就相当于数组,直接按照索引去取元素。而字典是按照key去取元素(类似于hash表),速度当然比不上元组了。下面的测试可以提供一些直观的感觉。

$ python -m timeit -s 'a = dict(a=12, b=13, c=14)' 'for k,v in a.items():' '  pass'

1000000 loops, best of 3: 0.391 usec per loop

$ python -m timeit -s 'a = (12, 13, 14)' 'for v in a:' '  pass'

10000000 loops, best of 3: 0.12 usec per loop

可以看到遍历同样是三个元素的dict的时间大致上是tuple的3倍左右。 (实际上这个时间包括了创建 dict 和 tuple 的时间,创建dict的时间也是要大于创建tuple的时间的,这里就不细分了,总之,dict的创建、访问时间一定是大于tuple的)

但是在python中,dict是做过极度优化的,其效率已经非常高了,因为在python中它的使用实在是太广了。所以在实际编程中,一般我们只根据实际需求来考虑使用什么数据结构 (dict, list, set, tuple),而不是根据不同数据结构的访问速度差别。