- tuple元祖
元祖的格式和用法几乎和列表一致,唯一的区别就是元祖是不可更改的序列,因此你只能从元祖中查找元素,但是不能修改元素。
元祖的创建有以下几种方式:
使用一对圆括号:( ) 如 a =(1,2,3) a[1]=2
使用tuple关键词:tuple(),如a = tuple([1,2,3])
- 字典
字典是以键值对(key-value)的形式存储数据,可以在O(1)的时间复杂度上查找数据,可以认为是当前最快的速度了!
字典里的内容用“,"隔开,每个元素是键值对,":"前的元素为key,这是唯一值不可重复的,":"后的元素为value。
字典中的元素是无序的。
如:d = {"name":"xiaoming","age":18,"sex":"male"}
获取或存入元素必须根据key的位置
- 获取元素 d[‘age’],如果检索的key不存在,就会报错。如果想避免报错,让程序可以继续运行,可以使用d.get(“address”),因为字典中不存在address这个key,将返回空值。
- 添加元素 d[‘home’] = “Shanghai”
- 删除key, d.pop(“home”)
字典的遍历:
遍历键-值对,获取key/value
for k,v in d.items():
print(k)
print(v)
或
for item in d.items():
print(item)
或单独遍历所有的键
for k in d.keys():
print(k)
或单独遍历所有的键
for v in d.values():
print(v)
有序遍历所有的键,使用sorted排序,不改变原始结构
for k in sorted(d.keys()):
print(k)
- Set
set也是key的集合,与字典类似。但是它不存储value, set中没用重复值,这几乎是它最重要的一个属性。
回忆一下我们高中学的并集与交集知识,set可以直接被用来计算这样的逻辑
a = set([1,2,3,4,5,6,7])
b = set([1,4,5,6,10,20,3])
# 交集查找
a & b
{1, 3, 4, 5, 6}
# 并集查找,两个都覆盖
a | b
{1, 2, 3, 4, 5, 6, 7, 10, 20}
#对LS去重
LS = [1,2,3,4,65,3,2,1,43,54,5]
set(LS)
{1, 2, 3, 4, 5, 43, 54, 65}
Set也支持多种多样的元素操作方法
a.add(10)
a.remove(2)
a
{1, 3, 4, 5, 6, 7, 10}
- 条件判断与循环
For循环
While循环,通常会设置自增量。
- Break 和 continue
要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用 break语句。 break语句用于控制程序流程,可使用它来控制哪些代码行将执行,哪些代码行不执 行,从而让程序按你的要求执行你要执行的代码.
要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它 不像break语句那样不再执行余下的代码并退出整个循环.
- Input
input返回的永远都是字符串;若要转换为数字,可以用相应函数进行转换
- Python函数
在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
- Python函数参数
PYTHON函数的定义方法非常简单,但是却很灵活,尤其是对参数的设定,可以多种多样。 除了正常的定义的必选参数外,还可以使用默认参数、可变参数和关键字参数。
位置参数: 如函数my_fun(age,name,home)
按照参数的位置顺序传递值my_fun(22,"xiaoming",'shanghai');
或者通过指定参数名称来传入值,这样就不需要考虑顺序
my_fun(name = "xiaoming",age = 22,home = "shanghai")
默认参数:
编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时, Python将使用指定的实参值;否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数调用中省略相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。
可变参数:传入的参数个数是可变的,可以是任意的。我们仅仅是在参数前面加上一个星号*,里面的计算逻辑完全不改变,就能实现之前说的可变想法,其调用也不需要再额外组装列表,函数内部会把参数作为一个tuple元祖()来进行使用。
- 参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
注意:默认参数省略的,后面为可变参数的时候,很可能出现错误。因为可变参数会作为一个tuple元祖进行。
- 列表生成器
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11):
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:
>>> L = []
>>> for x in range(1, 11):
... L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用。
for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
还可以使用两层循环,可以生成全排列:
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
三层和三层以上的循环就很少用到了。