首页 > 其他分享 >本周回顾:列表、字典、集合、元祖、垃圾回收机制、循环、输出格式

本周回顾:列表、字典、集合、元祖、垃圾回收机制、循环、输出格式

时间:2022-10-04 15:47:19浏览次数:59  
标签:jason 22 列表 dict user l1 print 元祖 字典

本周回顾重点大概

  • 列表
  • 字典
  • 集合
  • 元祖
  • 垃圾回收机制
  • 循环
  • 输出格式

目录

本周回顾详细

列表

1.类型转换
	list(其他数据类型)
	ps:能够被for循环的数据类型都可以转成列表
 	print(list('hello'))
    print(list({'name': 'jason', 'pwd': 123}))
    print(list((1, 2, 3, 4)))
    print(list({1, 2, 3, 4, 5}))
2.需要掌握的方法
	11 = [111, 222, 333, 444, 555, 666, 777, 888]
    # 1.索引取值(正负数)
    # print(l1[0])
    # print(l1[-1])
    # 2.切片操作    与字符串讲解操作一致
    # print(l1[0:5])
    # print(l1[:])
    # 3.间隔数 方向  与字符串讲解操作一致
    # print(l1[::-1])
    # 4.统计列表中数据值的个数
    # print(len(l1))  # 8
    # 5.数据值修改
    # l1[0] = 123
    # print(l1)
    # 6.列表添加数据值
    # 方式1:尾部追加数据值
    # l1.append('干饭')
    # print(l1)  # [111, 222, 333, 444, 555, 666, 777, 888, '干饭']
    # l1.append(['jason', 'kevin', 'jerry'])
    # print(l1)  # [111, 222, 333, 444, 555, 666, 777, 888, ['jason', 'kevin', 'jerry']]
    # 方式2:任意位置插入数据值
    # l1.insert(0, 'jason')
    # print(l1)
    # l1.insert(1, [11, 22, 33, 44])
    # print(l1)  # [111, [11, 22, 33, 44], 222, 333, 444, 555, 666, 777, 888]
    # 方式3:扩展列表 合并列表
    # ll1 = [11, 22, 33]
    # ll2 = [44, 55, 66]
    # print(ll1 + ll2)  # [11, 22, 33, 44, 55, 66]
    # ll1.extend(ll2)  # for循环+append
    # print(ll1)  # [11, 22, 33, 44, 55, 66]
    # for i in ll2:
    #     ll1.append(i)
    # print(ll1)
    # 7.删除列表数据
    # 方式1:通用的删除关键字del
    # del l1[0]
    # print(l1)
    # 方式2:remove
    # l1.remove(444)  # 括号内填写数据值
    # print(l1)
    # 方式3:pop
    # l1.pop(3)  # 括号内填写索引值
    # print(l1)
    # l1.pop()  # 默认尾部弹出数据值
    # print(l1)
    # res = l1.pop(3)
    # print(res)  # 444
    # res1 = l1.remove(444)
    # print(res1)  # None
    # 8.排序
    # ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]
    # ss.sort()  # 默认是升序
    # print(ss)
    # ss.sort(reverse=True)
    # print(ss)  # 改为降序
    # 9.统计列表中某个数据值出现的次数
    # print(l1.count(111))
    # 10.颠倒列表顺序
    # l1.reverse()
    # print(l1)

字典

1.类型转换
	dict()
	字典的转换一般不使用关键字 而是自己动手转
2.字典必须要掌握的操作
	user_dict = {
    'username': 'jason',
    'password': 123,
    'hobby': ['read', 'music', 'run']
    }
    # 1.按k取值(不推荐使用)
    # print(user_dict['username'])  # jason
    # print(user_dict['phone'])  # k不存在会直接报错
    # 2.按内置方法get取值(推荐使用)
    # print(user_dict.get('username'))  # jason
    # print(user_dict.get('age'))  # None
    # print(user_dict.get('username', '没有哟 嘿嘿嘿'))  # jason   键存在的情况下获取对应的值
    # print(user_dict.get('phone', '没有哟 嘿嘿嘿'))  # 键不存在默认返回None 可以通过第二个参数自定义
    # 3.修改值数据
    # print(id(user_dict))
    # user_dict['username'] = 'tony'  # 键存在则修改对应的值
    # print(id(user_dict))
    # print(user_dict)
    # 4.新增键值对
    # user_dict['age'] = 18  # 键不存在则新增键值对
    # print(user_dict)
    # 5.删除数据
    # del user_dict['username']
    # print(user_dict)
    # res = user_dict.pop('password')
    # print(user_dict)
    # print(res)  # 123
    # 6.统计字典中键值对的个数
    # print(len(user_dict))  # 3
    # 7.字典三剑客
    # print(user_dict.keys())  # 一次性获取字典所有的键 dict_keys(['username', 'password', 'hobby'])
    # print(user_dict.values())  # 一次性获取字典所有的值 dict_values(['jason', 123, ['read', 'music', 'run']])
    # print(user_dict.items())  # 一次性获取字典的键值对数据  dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'music', 'run'])])
    # for i in user_dict.items():
    #     k, v = i
    #     print(k, v)
    # 8.补充说明
    # print(dict.fromkeys(['name', 'pwd', 'hobby'], 123))  # 快速生成值相同的字典
    # res = dict.fromkeys(['name', 'pwd', 'hobby'], [])
    # print(res)  # {'name': [], 'pwd': [], 'hobby': []}
    # res['name'].append('jason')
    # res['pwd'].append(123)
    # res['hobby'].append('study')
    # print(res)
    '''当第二个公共值是可变类型的时候 一定要注意 通过任何一个键修改都会影响所有'''
    # res = user_dict.setdefault('username','tony')
    # print(user_dict, res)  # 键存在则不修改 结果是键对应的值
    # res = user_dict.setdefault('age',123)
    # print(user_dict, res)  # 存不存在则新增键值对 结果是新增的值
    user_dict.popitem()  # 弹出键值对 后进先出

集合

1.类型转换
	set()
	集合内数据必须是不可变类型(整型 浮点型 字符串 元组)
 	集合内数据也是无序的 没有索引的概念
2.集合需要掌握的方法
	去重
 	关系运算
	ps:只有遇到上述两种需求的时候才应该考虑使用集合
3.去重
	 s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}
 	 l1 = [11, 22, 33, 22, 11, 22, 33, 22, 11, 22, 33, 22]
    s1 = set(l1)
    l1 = list(s1)
    print(l1)
 	'''集合的去重无法保留原先数据的排列顺序'''
4.关系运算
	群体之间做差异化校验
 	eg: 两个微信账户之间 有不同的好友 有相同的好友
 	 f1 = {'jason', 'tony', 'jerry', 'oscar'}  # 用户1的好友列表
    f2 = {'jack', 'jason', 'tom', 'tony'}  # 用户2的好友列表
    # 1.求两个人的共同好友
    # print(f1 & f2)  # {'jason', 'tony'}
    # 2.求用户1独有的好友
    # print(f1 - f2)  # {'jerry', 'oscar'}
    # 3.求两个人所有的好友
    # print(f1 | f2)  # {'jason', 'jack', 'tom', 'tony', 'oscar', 'jerry'}
    # 4.求两个人各自独有的好友
    # print(f1 ^ f2)  # {'oscar', 'tom', 'jack', 'jerry'}
    # 5.父集 子集
    print(f1 > f2)
    print(f1 < f2)

元祖

1.类型转换
	tuple()
 	ps:支持for循环的数据类型都可以转成元组
2.元组必须掌握的方法
	 t1 = (11, 22, 33, 44, 55, 66)
    # 1.索引取值
    # 2.切片操作
    # 3.间隔、方向
    # 4.统计元组内数据值的个数
    # print(len(t1))  # 6
    # 5.统计元组内某个数据值出现的次数
    # print(t1.count(11))
    # 6.统计元组内指定数据值的索引值
    # print(t1.index(22))
    # 7.元组内如果只有一个数据值那么逗号不能少
    # 8.元组内索引绑定的内存地址不能被修改(注意区分 可变与不可变)
    # 9.元组不能新增或删除数据

垃圾回收机制

"""
为了节省空间内存,减轻电脑压力,python有自带的垃圾回收机制自动管理
"""
1 引用计数
	name='wuyong' 数据值wuyong身上的引用计数为1
	name1 = name,此时引用计数为2
	del name1 引用计数减1 为1 
当数据值引用计数为0时,会被垃圾回收机制当做垃圾回收掉,不为0就不会被回收掉

2 标记清除
	主要针对循环引用问题
  	lt1 = [11,22] #引用计数 1
    lt2 = [33,44] #引用计数 1
		lt1.append(lt2) #引用计数 2
    lt2.append(lt1) #引用计数 2
    del 1t1 #断开变量名lt1与列表的绑定关系 引用计数为2-1=1
    de2 1t2 #断开变量名lt1与列表的绑定关系 引用计数为2-1=1
	当内存占用到一定临界值时,程序会自动停止 然后扫描程序中的所有数据
  并只给产生循环引用的数据打上标记 之后一次性清除
3 分代回收
	垃圾回收机制的频繁运行也会损耗各项资源
  根据引用计数增长的频率,频率高的,检测频率越低。(每次检测间隔时间越长)

循环and分支结构

while 条件:	
	条件成立之后执行的子代码(循环体代码)
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规律依次执行 直到条件不成立才会结束循环体代码的执行

# count = 1
# while count < 5:
#     print('hello world')
#     count += 1  # count = count + 1
# print('想不想干饭?')

break  # 强行结束循环体
	while循环体代码一旦执行到break会直接结束循环
continue  # 直接跳到条件判断处
	while循环体代码一旦执行到continue会结束本次循环 开始下一次循环
    
 
while 条件:
    循环体代码
else:
    循环体代码没有被强制结束的情况下 执行完毕就会执行else子代码


1.单if分支结构
	if 条件:
		条件成立之后才会执行的代码快
	ps:单if可以借助于流程图理解
 	 username = input('username>>>:')
	 if username == 'jason':
	     print('老师好')

2.if...else...分支结构
	if 条件:
     	条件成立之后执行的子代码
	else:
      	条件不成立执行的子代码
 	 username = input('username>>>:')
    if username == 'jason':
        print('老师好')
    else:
        print('去你妹的')

3.if...elif...else分支结构
	if 条件1:
       条件1成立之后执行的子代码
 	elif 条件2:
       条件1不成立 条件2成立执行的子代码
  	elif 条件3:
       条件1和2都不成立 条件3成立执行的子代码
   	else:
       上述条件都不成立 执行的子代码
 	ps:中间的elif可以写多个、上述子代码永远只会走一个
 	 score = input('请输入学生成绩>>>:')
    score = int(score)  # 将字符串的整数转换成整型的整数
    if score >= 90:
        print('优秀')
    elif score >= 80:
        print('良好')
    elif score >= 70:
        print('一般')
    elif score >= 60:
        print('及格')
    else:
        print('挂科 交钱重修')
 
4.if的嵌套使用(有点难)
	 age = 28
    height = 170
    weight = 110
    is_beautiful = True
    is_success = False
    username = 'tony'
    if username == 'tony':
        print('tony发现目标')
        if age < 30 and height > 160 and weight < 150 and is_beautiful:
            print('大妹纸 手机掏出来 让我加微信')
            if is_success:
                print('吃饭 看电影 天黑了...')
            else:
                print('去你妹的 流氓!!!')
        else:
            print('不好意思 认错人了')
    else:
        print('不是tony做不出来这件事')

标签:jason,22,列表,dict,user,l1,print,元祖,字典
From: https://www.cnblogs.com/yong-wu/p/16753832.html

相关文章

  • Python中优雅的字典技巧总结
    1.引言在日常工作中,大家都需要进行字典的相关操作,对于某些初学者,经常会写一堆繁琐的代码来实现某项简单的功能。本篇文章重点介绍一些在Python中关于字典的一些简单技巧,熟......
  • react.js 实现音乐播放、下一曲、以及删除歌曲(仅播放列表)
    importReact,{Component}from'react';exportdefaultclassMusicextendsComponent{ constructor(props){  super(props);  this.state={ ......
  • uniapp + vue3糖果语法实现瀑布流商品列表
    目录效果思路实现先将列表分为两个HTML中使用左右列表进行显示完整代码效果思路瀑布流其实就是将放放商品信息列表展示的view分为了左右两个部分,然后固定了两个部分的......
  • 学习ASP.NET Core Blazor编程系列五——列表页面
    学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习ASP.NETCoreBlazor编程系列二——第一个Blazor应......
  • 12_列表渲染
    1.基本列表<!DOCTYPEhtml><html><head><metacharset="UTF-8"/><title>基本列表</title><scripttype="text/javascript"src="../j......
  • python 列表
    1.1列表列表就像是一个“打了激素”的数组,由于Python的变量没有数据类型,所以python的"数组"可以存放不同类型的变量,例如:[1,2,3,4,5,"上山打老虎"]可以为他加上一个变量......
  • 构造函数初始化列表的基本形式
    https://blog.csdn.net/m0_63783532/article/details/123833512?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-12383......
  • 列表元素
    列表元素有序列表ol:orderedlistli:listitem无序列表把ol改成ulul:unorderedlist无序列表常用于制作菜单或新闻列表。定义列表通常用于一些术语的定义dl:de......
  • Python 语法之字典
    前面的文章中已经介绍了循环语句for与while,以及中断语句break与continue。今天一起给小伙伴们介绍一下Python中的“字典”,这里的字典和我们平时所用的字典不一样,这个是Pyth......
  • C# Dictionary(数据字典)的基本用法
    通常情况下,我们可以通过int类型的索引来从数组或者List集合中查询所需的数据但是如果情况稍微复杂一点:索引是非int类型的数据(比如string或其他类型),这时候就需要使......