Day03 - 2018-04-05

因为一些原因断了一天,故今天至少要1.5小时才能补足喽~

列表list 常用方法

len() 返回列表中的元素数量。

max() 返回列表中的最大元素。最大元素的判断依据是列表中的对象类型。数字列表中的最大元素是最大的数字。字符串列表中的最大元素是按照字母顺序排序时排在最后一位的元素。因为 max() 函数的定义依据是大于比较运算符。如果列表包含不同的无法比较类型的元素,则 max() 的结果是 undefined。

min() 返回列表中的最小元素。它是 max() 函数的对立面,返回列表中的最小元素。

sorted() 返回一个从最小到最大排序的列表副本,并使原始列表保持不变。

join 方法

Join 是一个字符串方法,将字符串列表作为参数,并返回一个由列表元素组成并由分隔符字符串分隔的字符串。

append 方法

实用方法 append 会将元素添加到列表末尾。

pop() 函数用于移除列表中的一个元素(默认最后一个元素,即pop(-1)),并且返回该元素的值。可以使用pop(0)移除第一个元素

元组 tuple

元组和列表相似,它们都存储一个有序的对象集合,并且可以通过索引访问这些对象。但是与列表不同的是,元组不可变,你无法向元组中添加项目或从中删除项目,或者直接对元组排序。

tuple = 1, 2, 3 可以创建一个元组,当括号不影响阅读时可省略,等同于 tuple = (1, 2, 3)

集合 set

集合是一个包含唯一元素的可变无序集合数据类型。

集合和列表一样支持 in 运算符。和列表相似,你可以使用 add 方法将元素添加到集合中,并使用 pop 方法删除元素。但是,当你从集合中拿出元素时,会随机删除一个元素。注意和列表不同,集合是无序的,因此没有“最后一个元素”。

主要用途,收集唯一元素

字典 dict

字典是可变数据类型,其中存储的是唯一键到值的映射。下面是存储元素和相应原子序数的字典。

字典的键可以是任何不可变类型,例如整数或元组,而不仅仅是字符串。甚至每个键都不一定要是相同的类型

字典里可以嵌套字典,即其value可以是一个字典,但不能是list,因为list是可变的

赋值时使用方括号,如 dict = {'a': 1} dict['b'] = 2。可以直接使用 dict['a']取到其对应的value,但使用dict['c']会抛出‘KeyError’异常,建议使用dict.get('c')会返回默认值None。可以用dict.get('c', 'default value')指定默认值

使用for ... in dict 其迭代对象是key

radiansdict.items()

以列表返回可遍历的(键, 值) 元组数组,可以这样使用 for key, value in dict.items(): ...

恒等运算符

同js里的===,python使用关键字 is 和 is not 进行恒等运算

条件判断

if 、elif、else 采用: 和缩进来区分代码块

相关关键字 and    or     not

循环

Python 有两种类型的循环:for 循环和 while 循环。for 循环用来遍历可迭代对象。

可迭代对象是每次可以返回其中一个元素的对象,包括字符串、列表和元组等序列类型,以及字典和文件等非序列类型。

For 循环的组成部分

循环的第一行以关键字 for 开始,表示这是一个 for 循环

然后是 iteration_variable in iterable,表示正在被遍历的是可迭代的对象,并且用迭代变量表示当前正在被处理的可迭代对象的元素。在此示例中,迭代变量 city 在第一次迭代时将是“new york city”,在第二次迭代时将是“mountain view。

for 循环头部始终以英文冒号 : 结束。

for 循环头部之后的是在此 for 循环的每次迭代时运行的缩进代码块。在此块中,我们可以使用迭代变量访问当前正在被处理的元素的值。

range() 是一个内置函数,用于创建不可变的数字序列。它有三个参数,必须都为整数。

range(start=0, stop, step=1)

Start是该序列的第一个数字,stop比该序列的最后一个数字大 1,step是该序列中每个数字之间的差。如果未指定的话,start默认为 0,step 默认为 1(即上述 =0和 =1)。

如果你在 range() 的括号里指定一个参数,它将用作 'stop' 的值,另外两个参数使用默认值。

E.g. list(range(4)) 返回 [0, 1, 2, 3]

如果你在 range() 的括号里指定两个参数,它们将用作 'start' 和 'stop' 的值,'step' 将使用默认值。 E.g.list(range(2, 6)) 返回 [2, 3, 4, 5]

或者你可以为三个参数 'start、stop' 和 'step' 均指定一个值。 E.g. list(range(1, 10, 2)) 返回 [1, 3, 5, 7, 9]


while循环

For 循环是一种“有限迭代”,意味着循环主体将运行预定义的次数。这与“无限迭代”循环不同,无限迭代循环是指循环重复未知次数,并在满足某个条件时结束,while 循环正是这种情况

While 循环的组成部分

第一行以关键字 while 开始,表示这是一个 while 循环。

然后是要检查的条件。在此示例中是 sum(hand) <= 17。

while 循环头部始终以冒号 : 结束。

该头部之后的缩进部分是 while 循环的主体。如果 while 循环的条件为 true,该循环的主体将被执行。每次运行循环主体时,条件将被重新评估。这个检查条件然后运行循环的流程将重复,直到该表达式变成 false。

循环的缩进主体应该至少修改测试表达式中的一个变量。如果测试表达式的值始终不变,就会变成无限循环!

Zip 和 Enumerate

zip 和 enumerate 是实用的内置函数,可以在处理循环时用到。

Zip

zip 返回一个将多个可迭代对象组合成一个元组序列的迭代器。每个元组都包含所有可迭代对象中该位置的元素。

list(zip(['a', 'b', 'c'], [1, 2, 3])) 将输出 [('a', 1), ('b', 2), ('c', 3)]

some_list = [('a', 1), ('b', 2), ('c', 3)]

除了可以将两个列表组合到一起之外,还可以使用星号拆封列表。letters, nums = zip(*some_list)

enumerate 是一个会返回元组迭代器的内置函数,这些元组包含列表的索引和值。当你需要在循环中获取可迭代对象的每个元素及其索引时,将经常用到该函数。

列表推导式

此语法很牛逼~~

capitalized_cities = []

for city in cities:

    capitalized_cities.append(city.title())

可以简写为capitalized_cities = [city.title() for city in cities]

借助列表推导式,我们可以使用 for 循环用一步创建一个列表。

我们使用方括号 [] 创建列表推导式,括号里包含要对可迭代对象中的每个元素进行评估的条件。上述列表推导式对 cities 中的每个元素 city 调用 city.title(),以为新列表 capitalized_cities 创建每个元素。

如果你要添加if...else,则需要将条件语句移到列表推导式的开头,直接放在表达式后面,如下所示。

squares = [x**2 if x %2==0 else x +3 for x in range(9)]

列表推导式并没有在其他语言中出现,但是在 python 中很常见。

相关推导式的资料, 列表推导式、字典推导式、集合推导式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,042评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,996评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,674评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,340评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,404评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,749评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,902评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,662评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,110评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,577评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,258评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,848评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,726评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,952评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,271评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,452评论 2 348