首页 > 其他分享 >01-元组、列表

01-元组、列表

时间:2024-04-04 23:34:01浏览次数:16  
标签:01 lis1 45 列表 v1 v2 l1 print 元组

列表和元组的区别:

''' 1.列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。

2.元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。

3.元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。'''

tup1 = (1, 2, 3)

print(type(tup1)) # <class 'tuple'>

"""

元组不能修改

"""

======================================================================================================================

元组

tup2 = (1,) # 元组中只有一个元素的时候必须要加个,

print(type(tup2))

a,b = (1,2) # 元组拆包,必须要一一对应不能有多余的,对列表也适用。例啊,a,b = (1,2,3)

print(a,b)

tup3 = (1, 2, 3)

tup4 = (4, 5, 6)

print(tup3 + tup4)

======================================================================================================================

列表

*增

1,append() 添加到末尾

lis1 = [45, 78, '北京', '上海', '广州']

lis1.append('天津')

print(lis1) # [45, 78, '北京', '上海', '广州', '天津']

2,extend() 展开元素添加到末尾(两个列表)--迭代追加

lis2 = ['狗子', '老鼠']

lis1.extend(lis2)

print(lis1) # [45, 78, '北京', '上海', '广州', '狗子', '老鼠']

3,insert() 插队添加,利用索引值

lis1.insert(2, 56)

print(lis1) # [45, 78, 56, '北京', '上海', '广州']

4,+ 加法原理直接相加

lis3 = lis1 + lis2

print(lis3) # [45, 78, '北京', '上海', '广州', '狗子', '老鼠']

======================================================================================================================

*删

pop() 指定下标删除

lis1.pop(1)

print(lis1.pop(1)) # 78 打印出被删除的元素

print(lis1) # [45, '北京', '上海', '广州']

remove() 指定元素删除

lis1.remove(78)

print(lis1) # [45, '北京', '上海', '广州']

clear() # 清除列表中的所有元素

lis1.clear()

print(lis1) #[]变成一个空列表

del() # 直接删除这个列表,可也按照索引删除,可以切片删除

======================================================================================================================

*改

通过赋值法直接修改

lis1[1] = 100

print(lis1) # [45, 100, '北京', '上海', '广州']

======================================================================================================================

*查index() /index(元素,范围开始,范围结束)查找元素,输出下标

print(lis1.index(78)) # 1

======================================================================================================================

*排序

1,reverse() 倒置

lis3 = [45, 23, 21, 87, 100, 59]

lis3.reverse()

print(lis3) # [59, 100, 87, 21, 23, 45]

2,sort() 从小到大排序

lis3.sort()

print(lis3) # [21, 23, 45, 59, 87, 100]

reverse和sort联用实现从大到小排列(sort先从小到大排列,然后reverse倒置)

lis3.sort(reverse=True)

print(lis3) # [100, 87, 59, 45, 23, 21]

======================================================================================================================

列表的取值

city_list = ['北京', '上海', '深圳', '长沙']

print(city_list[3])

print(city_list[-1])

列表的最值

lst = [1,2,3,4,5,6]

print(min(lst)) # 求最小值

print(max(lst)) # 求最大值

======================================================================================================================

连续删除

删除索引为奇数的元素

l1 = [11, 22, 33, 44, 55]

1,直接删除

del l1[1::2]

print(l1)

2,倒序删除元素

l1 = [11, 22, 33, 44, 55]

for index in range(len(l1)-1, -1, -1): # 将索引值倒序,从后往前删除前面的元素索引值不变

if index % 2 == 1:

l1.pop(index)

print(l1)

循环一个列表,实际上是按照索引循环

a = [2, 4, 5, 6, 7]

for var in a:

if var % 2 == 0:

a.remove(var)

print(a) # [4, 5, 7]

======================================================================================================================

3,思维置换

l1 = [11, 22, 33, 44, 55]

new_l1 = []

for index in range(len(l1)):

if index % 2 == 0:

new_l1.append(l1[index])

l1 = new_l1

print(l1)

======================================================================================================================

**循环一个列表时最好不要改变列表的大小,这样会另想最终的结果。

存储空间的指向

v1 = [1, 2, 3, 4, 5]

v2 = [v1, v1, v1]

v1.append(6)

print(v1) # [1, 2, 3, 4, 5, 6]

print(v2) # [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]

v1 = [1, 2, 3, 4, 5]

v2 = [v1, v1, v1]

v2[1][0] = 111

v2[2][0] = 222

print(v1) # [222, 2, 3, 4, 5]

print(v2) # [[222, 2, 3, 4, 5], [222, 2, 3, 4, 5], [222, 2, 3, 4, 5]]

****(重要)

v1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]

v2 = {}

for item in v1:

if item < 6:

continue

if 'k1' in v2:

v2['k1'].append(item)

else:

v2['k1'] = [item]

print(v2)

lis = ['周老二', '周星星', '麻花藤', '周扒皮']

for i in range(len(lis) - 1, -1, -1):

if lis[i].strip()[0] == '周':

lis.pop(i)

print(lis)

print(lis[i])

车牌区域划分

cars = ['鲁A32444', '鲁B1233', '京B8989M', '黑C46752', '沪B25041', '鄂A88888']
locals = {'沪': '上海', '黑': '黑龙江', '鲁': '山东', '鄂': '湖北', '京': '北京'}
'''
思路:
1,结果为{'黑龙江':'1','山东':'2','北京':'1','湖北':'1','上海':'1'}
2,循环遍历主体:cars
3,在循环中给字典添加键值对
4,没有键,就创建一个键,有就加一
'''

法一

dic = {}

for i in cars:

if locals[i[0]] not in dic:

dic[locals[i[0]]] = 1

else:

dic[locals[i[0]]] += 1

print(dic)

法二

dic = {}

for i in cars:

dic[locals[i[0]]] = dic.get(locals[i[0]],0) + 1

print(dic)

标签:01,lis1,45,列表,v1,v2,l1,print,元组
From: https://www.cnblogs.com/Marker-411528/p/18115329

相关文章

  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧011-Noticeboard
    PDF格式公众号回复关键字:ZKYD011阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • 0x01 - 新建go项目 & go项目的模块处理
    0x00-目标-一个计算器项目,可以计算加法和开根号首先要有一个根目录的概念。我们给这个项目起一个名字,叫做first_go.看一下我们要有的目录结构长这样:(base)vth@vthdeMacBook-Prolearn_go%tree.└──first_go├──bin│└──calc├──pkg......
  • Stable diffusion 加载扩展列表报错解决方法
    项目场景:在使用Stablediffusionwebui时,使用扩展列表出现错误问题描述点击loadfrom后,出现加载扩展列表报错原因分析:下载的扩展的时候,都是github的url,需要科学上网,如果不能科学上网那就需要更改相关地址。解决方案:打开ui_extensions.py文件将下图红框中的地址......
  • 软件工程日报018
     第18天第二天第三天第四天第五天所花时间(包括上课) 6h    代码量(行) 900    博客园(篇) 2    所学知识 ACGit    ......
  • Flask01
    1新建虚拟环境2在PyCharm中创建一个NewProject用PurePython或新建一个py文件3基础代码app.pyfromflaskimportFlaskimportconfigapp=Flask(__name__)app.config.from_object(config)#flask路由是基于装饰器的"""装饰器执行过程:先执行加括号(),然后......
  • vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)
    ApacheSolr是一个开源的搜索服务器。Solr使用Java语言开发,主要基于HTTP和ApacheLucene实现。此次漏洞出现在ApacheSolr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataC......
  • 01-ARM64体系结构基础知识
    本章思考题ARMv8体系结构处理器包含多少个通用寄存器?答:提供31个64位宽的通用寄存器,可以减少对栈的访问,从而提高性能。AArch64执行状态包含多少个异常等级?它们分别有什么作用?答:定义ARMv8异常模型,支持4个异常等级,即EL0~EL3。请简述PSTATE寄存器中NZCV标志位的含义。答:如下表所......
  • 第01章 JavaWeb基础
    B/S架构是Brower/Server的缩写,即浏览器/服务器结构。在这种结构中,客户端不需要开发任何用户界面,而是通过浏览器(如IE,Firefox,Chrome,Safari等等)向服务器发送请求,由服务器进行处理后将响应结果返回浏览器,最后浏览器将结果内容展示出来。我们写的JavaWeb程序是在服务器端运行的。W......
  • Java登陆第三十七天——VUE3响应式基础、条件渲染、列表渲染
    响应式数据什么是响应式数据? 当数据发生改变时,DOM树的内容,会和数据同步更新。 vue3不是自动响应式数据,需要经过函数处理得到响应式数据对象。ref和reactive这两个函数都会返回响应式数据对象,但也有不同。refref通常用于将一个基本类型转为响应式数据对象。基本类型包括:数......
  • 代码随想录算法训练营第二十一天| 530. 二叉搜索树的最小绝对差 501. 二叉搜索树中的
    530.二叉搜索树的最小绝对差https://leetcode.cn/problems/minimum-absolute-difference-in-bst/description/TreeNodepre=null;intres=Integer.MAX_VALUE;publicintgetMinimumDifference(TreeNoderoot){if(root==null)return0;pr......