美文网首页Python
Python中的列表和字典遍历

Python中的列表和字典遍历

作者: 逆风g | 来源:发表于2018-10-29 20:43 被阅读182次

列表、字典的遍历有很多技巧,如何写出简洁优雅的代码,可能需要了解如下知识:

  • 列表遍历
  • 字典遍历
  • 列表迭代器
  • 字典迭代器
  • 列表生成式
  • 字典生成式
  • 列表生成器

列表遍历

  1. 直接遍历列表元素
list = ['zhangsan', 'lisi', 'wanger', 'mazi']
for value in list:
    print value
zhangsan
lisi
wanger
mazi
  1. 利用索引遍历列表元素
list = ['zhangsan', 'lisi', 'wanger', 'mazi']
for i in range(len(list)):
    print list[i]
zhangsan
lisi
wanger
mazi
  1. 利用枚举遍历列表的索引对应的元素
list = ['zhangsan', 'lisi', 'wanger', 'mazi']
for i, value in enumerate(list):
    print i, value
0 zhangsan
1 lisi
2 wanger
3 mazi

字典遍历

  1. 直接遍历字典元素,值为key
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for key in dict:
    print key, dict[key]
age 20
name zhangsan
sex man
  1. 遍历字典的key
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for key in dict.keys():
    print key, dict[key]
age 20
name zhangsan
sex man
  1. 遍历字典的value
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for value in dict.values():
    print value
20
zhangsan
man
  1. 利用枚举遍历字典的索引key
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for key, value in enumerate(dict):
    print key, value
0 age
1 name
2 sex
  1. 利用items遍历字典的keyvalue
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for key, value in dict.items():
    print key, value
age 20
name zhangsan
sex man

列表迭代器

上面所说到的遍历方式非常占用内存,使用迭代器,大大减少内存的使用。

list = ['zhangsan', 'lisi', 'wanger', 'mazi']
for value in iter(list):
    print value
zhangsan
lisi
wanger
mazi

字典迭代器

  1. 利用items的迭代器遍历字典
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for key, value in dict.iteritems():
    print key, value
age 20
name zhangsan
sex man
  1. 利用keys的迭代器遍历字典
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for key in dict.iterkeys():
    print key, dict[key]
age 20
name zhangsan
sex man
  1. 利用values的迭代器遍历字典
dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
for value in dict.itervalues():
    print value
20
zhangsan
man

列表生成式

列表生成式基本语法:[exp for iter_var in iterable]
带过滤功能:[exp for iter_var in iterable if_exp]
嵌套循环:[exp for iter_var1 in iterable1 for iter_var2 in iterable2 if_exp]

  1. 嵌套的列表生成式
list1 = [1, 2, 3]
list2 = [4, 5]
print [x * y for x in list1 for y in list2 if x > 1 and y < 5]
[8, 12]
  1. 带有函数的列表生成式
def handle(x, y):
    if y == 2:
        return [x, x]
    if y == 3:
        return [x, x, x]


list1 = [1, 2, 3]
list2 = [2, 3]
print [handle(x, y) for x in list1 for y in list2]
[[1, 1], [1, 1, 1], [2, 2], [2, 2, 2], [3, 3], [3, 3, 3]]

字典生成式

字典生成式与列表生成式,很相似,直接看一个例子。

dict = {'name': 'zhangsan', 'age': '20', 'sex': 'man'}
print {key: value for key, value in dict.items()}
{'age': '20', 'name': 'zhangsan', 'sex': 'man'}

列表生成器

列表生成器其实很简单,就是把[]变成(),可以使用next()、或者遍历的方式获取元素。为什么要说生成器,因为当列表长度很长时,太费内存,使用生成器则每次都是推算出来的当前元素,没有一次性的保存所有元素,和前面所说的迭代器是一个道理。

  1. next()方式
a = (i for i in range(5))
print next(a)
print next(a)
print next(a)
print next(a)
print next(a)
0
1
2
3
4
  1. 遍历方式
b = (i for i in range(6,10,1))
for i in b:
    print i
6
7
8
9

相关文章

  • Python中的列表和字典遍历

    列表、字典的遍历有很多技巧,如何写出简洁优雅的代码,可能需要了解如下知识: 列表遍历 字典遍历 列表迭代器 字典迭...

  • Python3:列表、字典、元组

    列表的深复制与浅复制 字典的遍历 遍历键 遍历值 遍历键值对 按顺序遍历字典中的键、值 字典与列表相互嵌套 字典列...

  • Python入门——字典和列表的应用场景

    Python入门——字典和列表的应用场景 通常会在列表中存放多个字典。

  • python-items()

    Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。 语法 ...

  • python VS es6

    今天用python写一个leetcode上的算法,由于好久没写python了,连pyhon的列表和字典遍历都忘了,...

  • Python语言的12个基础知识点小结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序、去重、字典排序、字典、列表...

  • python通过key值获取复杂字典中目标数据

    本文非原创,转载自 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据 具体思路如下: 新建...

  • python 字典相关操作

    1. python 在列表、字典、集合中筛选数据 列表:filter函数、列表解析 字典:字典解析 集合:集合解析...

  • 列表和字典总结

    列表的查 1.列表[下标]2.列表[下标1:下标2]3.遍历,一般遍历拷贝值 字典的查 1.字典[key] 字典....

  • 强大的for循环

    今天我们要学习的是Python中的for循环,for循环常用于遍历字符串、列表、元组、字典、集合等序列类型。 fo...

网友评论

    本文标题:Python中的列表和字典遍历

    本文链接:https://www.haomeiwen.com/subject/qwkbtqtx.html