Python函数篇:dict函数和列表生成式
1.dict函数
语法:
dict()
dict(**kwarg)
dict(mapping, **kwarg)
dict(iterable, **kwarg)
第一种:dict()构造一个空字典
h=dict()
print(h) #{}
第二种:dict(**kwargs) dict函数需要传入关键字参数。
a=dict(one='',two='')
print(a) #{'one': '1', 'two': '2'}
第三种:dict(mapping,**kwarg)
b=set([(1,2)])
print(b) #{(1, 2)}
b=dict(b)
print(b) #{1: 2} c = [(1,'c'), ['c', 1]]
c=dict(c)
print(c) #{1: 'c', 'c': 1} d = ('ac', set('de'))
print(d)#('ac', {'d', 'e'})
d=dict(d)
print(d) #{'a': 'c', 'd': 'e'}
第四种:高大上了
e = dict([(['one', 'two'][i - 1], i) for i in (1, 2)])
print(e) #{'one': 1, 'two': 2} f = dict({'one': 1, 'two': 2}.items())
print(f) #{'one': 1, 'two': 2} g = dict(zip(('one', 'two'), (1, 2)))
print(g) #{'one': 1, 'two': 2}
2.列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建列表的生成式。
[exp for iter_var in iterable]
首先迭代 iterable 里所有内容, 每一次迭代, 都把 iterable 里相应内容放到 iter_var 中, 再在表达式 exp 中应用该 iter_var 的内容, 最后用表达式的计算值生成一个新的列表.
a=range(1,10)
>>> [a*a for a in range(1,10)]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
可以使用两层循环,可以生成全排列:
>>> L = [(x, y) for x in range(2) for y in range(3)]
>>> L
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
可以使用判断语句
>>> c = [x for x in range(10) if x > 5]
>>> c
[6, 7, 8, 9]
列表生成式也可以使用两个变量来生成list:
>>> d = {'a': 'A', 'b': 'B', 'c': 'C' }
>>> [k + '=' + v for k, v in d.items()]
['a=A', 'b=B', 'c=C']
把一个list中所有的字符串变成小写:
>>> L = ['I', 'Love', 'Greg']
>>> [s.lower() for s in L]
['i', 'love', 'greg']
虽然列表生成式好用,但需要只是执行一个循环的时候尽量使用循环而不是列表解析, 这样更符合python提倡的直观性
当有内建的操作或者类型能够以更直接的方式实现的, 不要使用列表解析. 例如复制一个列表时, 使用 L1=list(L) 即可, 不必使用: L1=[x for x in L]
如果需要对每个元素都调用并且返回结果时, 应使用 L1=map(f,L), 而不是 L1=[f(x) for x in L].
Python函数篇:dict函数和列表生成式的更多相关文章
- Python入门篇-匿名函数
Python入门篇-匿名函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.匿名函数概述 1>.什么是匿名函数 匿名,即没有名字 匿名函数,即没有名字的函数 2>. ...
- Python入门篇-生成器函数
Python入门篇-生成器函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.生成器概述 1>.生成器generator 生成器指的是生成器对象,可以由生成器表达式得到, ...
- python中的 dict() 函数
Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. dict() 函数函数语法: dict(key/value) 参数说明: key/v ...
- python基础篇_003_函数
python中的函数 1.函数的目的 .避免代码冗余 .增强可读性 2.函数的定义与调用 # 定义函数 使用关键字def """ 1.定义函数: def 函数名(): 函 ...
- Python基础篇(初始函数)
Python初始函数: 一.什么是函数 1.我们到目前为止, 已经可以完成一些软件的基础功能了. 那么我们来完成这样一个功 能: 约x: print("拿出手机") print(& ...
- CSIC_716_20191114【生成器、匿名函数、内置函数、三元表达式、列表生成式、生成器表达式】
生成器: 函数与yield连用,凡是函数中有yield的,调用该函数的时候均不会立即执行,而是会返回一个生成器. 生成器本质上是一个迭代器,需要通过 [生成器.__next__()]或者[nex ...
- python 基础篇 匿名函数
匿名函数基础 首先,什么是匿名函数呢?以下是匿名函数的格式: lambda argument1, argument2,... argumentN : expression 我们可以看到,匿名函数的关键 ...
- python 基础篇 自定义函数
多态 我们可以看到,Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,同样的一个函数(比如这边的相加函数 my_sum()),可以同时应用在整型.列表.字符串等等的操作中. 在编 ...
- python 基础篇 11 函数进阶----装饰器
11. 前⽅⾼能-装饰器初识本节主要内容:1. 函数名的运⽤, 第⼀类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ⼆. 闭包什么是 ...
- Python入门基础之迭代和列表生成式
什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过 for ...
随机推荐
- 转换时间对象和字符串对象&添加时间
/* *基本思路,将字符串时间转化为时间对象,通过毫秒数来加减时间,然后在转化为字符串输出 */ //转化字符时间yy-mm-dd hh:mm:ss 为时间对象 使用split进行字符串的分割,取 ...
- Linux学习——shell编程之变量
shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...
- java学习——java按值传递和按址传递
先复制一个面试/笔试的题: 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答案: 是值传递.Java语言的方法调用只支持参 ...
- BZOJ-1192-[HNOI2006]鬼谷子的钱袋
Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一 ...
- 课程作业02(关于Java的几点讨论)
---恢复内容开始--- 1.一个Java类文件中真的只能有一个公有类吗? public class Test { public static void main(String[] args) { } ...
- 【Windows 10 应用开发】细说文本资源文件(resw)
最近,小戏骨版<红楼梦>很是火热,老周一口气看完了9集,一直看到 Surface 的风扇呼呼响.林黛玉和薛宝钗这两个角色都演得不怎么样,倒是演史湘云的娃娃演得不错,老周甚是喜欢. 于是,昨 ...
- ch4-计算属性(表达式计算 computed methods watchers)
1 计算属性 1.1 模板内的表达式是非常便利的,但是它们实际上只用于简单的运算. 在模板中放入太多的逻辑会让模板过重且难以维护. <div id="test1"> { ...
- zoj3204 connect them 最小生成树 暴力
Connect them Time Limit: 1 Second Memory Limit:32768 KB You have n computers numbered from 1 to ...
- hdu 4057--Rescue the Rabbit(AC自动机+状压DP)
题目链接 Problem Description Dr. X is a biologist, who likes rabbits very much and can do everything for ...
- c# 【MVC】WebApi设置返回Json
public static HttpResponseMessage toJson(Object obj) { String str; if (obj is String || obj is Char) ...