因为一些原因断了一天,故今天至少要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 中很常见。
相关推导式的资料, 列表推导式、字典推导式、集合推导式