Python


一.冒泡排序

# 冒泡排序
lst = [11, 22, 35, 6, 2]
for i in range(len(lst)):
    i = 0
    while i < len(lst) - 1:
        if lst[i] > lst[i + 1]:
            lst[i], lst[i + 1] = lst[i + 1], lst[i]    #解构
        i += 1
print(lst)

二.经典题1:文件al.txt内容(升级题)

序号  部门  人数  平均年龄    备注  描述
1   python  30  26  单身狗 屌丝居多
2   Linux   26  30  没对象 全是屌丝
3   运营部 20  24  女生多 没有人
通过代码,将其构建成这种数据类型:
[{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'}]



f = open("a6.txt", mode="r", encoding="utf-8")
line = f.readline()
lst = line.split()  # 第一行切割完成 key就准备完了

result = []
# 接着向后读取
for lin in f:
    ll = lin.split()    # 每一行都进行切割
    dic = {}
    for i in range(len(ll)):    # i 表示ll的索引\
        # lst[i]    # key
        # ll[i]        # value
        dic[lst[i]] = ll[i]
    result.append(dic)
print(result)

三.三元运算符

a = 1
b = 2
h = a if a>b else b
print(h)

四.Python中递归 层数

在Python中递归层数最多998

五.用迭代器模拟for 循环

lst = [1,2,3,4]
it = lst.__iter__()  # 获取迭代器

while 1:
    try:
        name = it.__next__()  # 获取内容
        print(name)
    except StopIteration:  # 抛异常
        break

六. 接收n 个参数, 返回最大值 和 最小值(字典)

def func(*args):
    ma = args[0]  # 假设第0项就是最大值
    mi = args[0]  # 假设第0项就是最小值
    for el in args:
        if el > ma:
            ma = el  # 当前这个元素比假设的那个大,进行赋值
        if el < mi:
            mi = el
    return {"最大值": ma, "最小值": mi}


ret = func(123,42, 22, 545, 21)
print(ret)

七. 经典题

user_list=[
        {"name": "alex", "hobby": "抽烟"},
        {"name": "alex", "hobby": "喝酒"},
        {"name": "alex", "hobby": "烫头"},
        {"name": "wusir", "hobby": "喊麦"},
        {"name": "wusir", "hobby": "街舞"},
        {"name": "alex", "hobby": "泡吧"},
        {"name":"太白", "hobby":"开车"}
         ]
# [{"name": "alex", "hobby_list": ["抽烟","喝酒","烫头","泡吧"]},{"name": "wusir", "hobby_list": ["喊麦", "街舞"]},]

result = [] # {'name': 'alex', 'hobby_list': ['抽烟']}
for user in user_list:
    # 1.判断是否在result里面存在了这个人, 如果存在. 把hobby_list添加一个hobby
    # 2.不存在. 创建一个新字典
    # 3.第一次循环user_lsit result[] 为空 所以直接创建dic{} 执行else
    for new_user in result:
        if user['name'] == new_user['name']:
            new_user['hobby_list'].append(user['hobby'])
            break
    else:
        dic = {}
        dic["name"] = user['name']
        dic['hobby_list'] = [user['hobby']]
        result.append(dic)
print(result)

八.深浅拷贝

import copy

赋值
l1 = [1, 2, 3, [1, 4, 5]]
l2 = l1  # = 是赋值, 数据完全共享,不管改哪个, 两个列表的值都会变
l2[0] = 'alex'
print(l1)  # ['alex', 2, 3, [1, 4, 5]]
print(l2)  # ['alex', 2, 3, [1, 4, 5]]

浅拷贝
l1 = [1, 2, 3, [1, 4, 5]]
l2 = copy.copy(l1)  # 浅拷贝, 数据半共享,只改变列表的第一层,第二层不变
l1[0] = 'alex'
# l2[0] = 'alex'
print(l1)  # ['alex', 2, 3, [1, 4, 5]]
print(l2)  # [1, 2, 3, [1, 4, 5]]

深拷贝
l1 = [1, 2, 3, [1, 4, 5]]
l2 = copy.deepcopy(l1)  # 深拷贝, 数据完全不共享,互相没有影响
l1[0] = 'alex0'
l2[3][0] = 'alex'

print(l1, l2)  # ['alex0', 2, 3, [1, 4, 5]] [1, 2, 3, ['alex', 4, 5]]

Author: 二哈君
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source 二哈君 !
 Previous
Python Python
一. 函数名的运用 函数名的内存地址 def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0> 1.函数名可以
2020-10-03 二哈君
Next 
Python Python
一、函数的定义​ 对代码块和功能的封装和定义 二、函数的定义语法​ def 函数名(): 函数体 def yue(): print("123") 函数的调用:使用函数名可以调用函数,写法
2020-09-22 二哈君
  TOC