您的位置:首页 > 编程语言 > Python开发

Python基础-4

2019-11-10 07:05 2046 查看

1、filter

filter可以进行过滤,和map的使用方式一样。

2、yield

在Python中,如果函数中带有yield,则表示该函数是一个生成器generator。当运行到yield时,就返回yield后面的值。然后在下一次继续从yield下一个语句继续执行。

例如:杨辉三角

def triangles():
L = [1]
while 1:
yield L
L = [0] + L + [0]
L = [L[i] + L[i + 1] for i in range(len(L) - 1)]

t = triangles()

while 1:
print(next(t))

结果如下:
# [1]
# [1, 1]
# [1, 2, 1]
# [1, 3, 3, 1]
# [1, 4, 6, 4, 1]
# [1, 5, 10, 10, 5, 1]
# [1, 6, 15, 20, 15, 6, 1]
# [1, 7, 21, 35, 35, 21, 7, 1]
# [1, 8, 28, 56, 70, 56, 28, 8, 1]
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
...

3、sorted

排序函数。这个函数可以对list进行排序,在元素是字符串时候或者想要自定义时候可以传入排序的函数。

sorted(list, key = method)

sortedList = sorted([1, -4, 5, 44, -443, 45, 78])
print(sortedList)

sortedList = sorted([1, -4, 5, 44, -443, 45, 78], key=abs)
print(sortedList)

# reverse 对排序进行反转
sortedList = sorted([1, -4, 5, 44, -443, 45, 78], key=abs, reverse=True)
print(sortedList)

对tuple的排序

# 假设我们用一组tuple表示学生名字和成绩:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

# 按名字排序
def by_name(t):
return t[0]

# 分数排序
def by_score(t):
return t[1]

print(sorted(L, key=by_name))

print(sorted(L, key=by_score))

4、list,tuple,set,dict的使用

  1. list

    list是一个有序的集合,可以随意的增加和删除。先定义:L = [2,4,5,45,7]

    (1)、增加到末尾 :

    L.append(666)
    或者
    L = L + [666]
    结果:
    [2,4,5,45,7,666]

    (2)、插入到指定位置:

    L.insert(0, 777) # 把777插入到第一个位置
    或者
    L = [777] + L
    结果:
    [777, 2, 4, 5, 45, 7]

    (3)、取值:

    n = L[2]   # 取第几个元素
    
    n = L[-1]  # 或者从后往前取,取倒数第一个(-1),倒数第二个(-2)

    (4)、删除:

    L.pop(i)  # 删除第i个元素
    
    L.pop()   # 没有序号,则默认删除最后一个元素

    (5)、替换:

    # 直接设置要替换的值
    L[i] = 888
  2. tuple

    tuple是不可变的list。

    T = () # 定义一个空tuple
    T = (4,) # 定义只有一个元素的tuple,需要在()里面加一个逗号“,”,不然会被当成数字。

    (1)、取值:和list取值一样

    t = T[1] # 取第二个元素

    (2)、替换:如果被替换的值是对象,该对象里面的值可以修改,其他的不能修改。

  3. set

    set是一种无序且不重复的类似list 的集合。

    S = {1,3,4,5,7}  # 定义一个set

    (1)、增加:

    S.add(666)  # 添加一个元素

    (2)、删除

    S.remove(666) # 删除666这个元素
  4. dict dict对应Java中的map。在Python中是字典。

    d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

    (1)、增加/替换:

    d['zfskkk'] = 98 # 增加一对key-value,如果key已经存在,则会覆盖先前的值。

    (2)、取值:

    value = d['zfskkk'] # 取值。如果该key不存在,则会报错。
    value = d.get('zfskkk', -1) # 如果key不存在,返回None。如果有默认值,则返回默认值。

    (3)、删除:

    d.pop('zfskkk') # 如果key不存在则报错。

    (4)、判断key是否存在

    'zfskkk' in d
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python def