PYTHON笔记2

  • 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的位置

  1. 获取元素 d[‘age’],如果检索的key不存在,就会报错。如果想避免报错,让程序可以继续运行,可以使用d.get(“address”),因为字典中不存在address这个key,将返回空值。
  2. 添加元素 d[‘home’] = “Shanghai”
  3. 删除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']

三层和三层以上的循环就很少用到了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值