侧边栏壁纸
  • 累计撰写 197 篇文章
  • 累计收到 496 条评论

Python学习笔记之字典推导式

2019-9-22 / 0 评论 / 55 阅读
# 字典推导式
# enumerate(iterable, [start = 0])
'''
参数
    iterable 可迭代数据(容器类型,range,迭代器)
    start 可以选择索引号 (默认从0开始)
返回值: 迭代器
'''

listvar = ['a','b','c']
res = enumerate(listvar)
print(res) # <enumerate object at 0x103313280>
from collections.abc import Iterable, Iterator
print(isinstance(res, Iterator)) # True
print(list(res)) # [(0, 'a'), (1, 'b'), (2, 'c')]
res = {a:b for a,b in enumerate(listvar)}
print(res) # {0: 'a', 1: 'b', 2: 'c'}

# zip
# 可以将多个具有iterable的数据拼接成元组 放到list中里
# example
from collections.abc import Iterable,Iterator
list1 = ['name','age','sex']
list2 = ['张宇童','18','保密']
res = zip(list1,list2)
print(isinstance(res, Iterable)) # True
print(isinstance(res, Iterator)) # True
print(list(res)) # [('name', '张宇童'), ('age', '18'), ('sex', '保密')]
print(dict(res)) # {'name': '张宇童', 'age': '18', 'sex': '保密'}
res = {a:b for a,b in zip(list1,list2)}
print(res) # {'name': '张宇童', 'age': '18', 'sex': '保密'}

# example 2
dictvar = {'zyt': '张宇童', 'content': '博客内容'}
dictvar2 = {0: '前沿技术博客', 1: '都是原创'}
res1 = dictvar.values()
res2 = dictvar2.values()
res = zip(res1,res2)
print(dict(res)) # {'张宇童': '前沿技术博客', '博客内容': '都是原创'}

# example 3
list1 = [1,2,3,4,5,6,7,8,9]
# print((list1.index(3)+1))
res = [(i,list1[list1.index(i)]) for i in list1 if list1.index(i) % 2 == 0]
print(res)

评论一下?

OωO
取消