欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 列表及其应用

程序员文章站 2023-11-12 23:39:10
列表Python 序列的基础操作1.序列的索引从左往右:0 1 2 3 4从右往左:-1 -2 -3 -42.序列相加Python中列表的功能相当强大,两个序列的拼接直接相加即可:list1 = ["炒酸奶","红烧肉"]list2 = ["鱼香肉丝","烤冷面"]print(list1+list2)得到结果:['炒酸奶', '红烧肉', '鱼香肉丝', '烤冷面']3.序列相乘得到一个重复次数的列表:list1 = ['Hello']print(list1*3)得到...

列表

Python 序列的基础操作

1.序列的索引

从左往右:0 1 2 3 4
从右往左:-1 -2 -3 -4

2.序列相加

Python中列表的功能相当强大,两个列表的拼接直接相加即可:

list1 = ["炒酸奶","红烧肉"]
list2 = ["鱼香肉丝","烤冷面"]
print(list1+list2)

得到结果:

['炒酸奶', '红烧肉', '鱼香肉丝', '烤冷面']

3.序列相乘

得到一个重复次数的列表:

list1 = ['Hello']
print(list1*3)

得到

['Hello', 'Hello', 'Hello']

4.元素检查

语法格式:

value in sequence

如果在列表中,则返回Ture,与之相对的是not in,若不在列表返回True,反之则False。

5.切片※

语法格式:

sname [start:end:step]
#start 为开始位置,不指定则默认0
#end 表示截止位置,不指定则默认为序列长度
#step 步长,不指定则连续访问

!易错点辨析!

如果是list1 = list2则该拷贝是一种浅拷贝,仅仅是一种指针形式由list1指向2,而将切片列表中省略只留[:],如:list3[:]表示复制整个名称为list3的序列。

列表的计算与应用

1.列表函数

  • list() 将序列强制转化成列表
  • str() 序列转换为字符串
  • sum()求和
  • sort(),sorted()排序,会重点说明。
  • reversed()直接翻转列表
  • enumerate()将序列组合为索引序列

list(data)举例

list(range(10,20,2))

得到列表

[10,12,14,16,18]

关于sort()和sorted(),先讨论sort()函数,其基本用法:

listname.sort(key= ,reverse= )
  • listname.sort是排序函数的使用
  • key提取关键字,比如key=str.lower表示在排序是不区分大小写,因为默认状态下对英文字符串排序先排大写再排小写,这与ASCII码有关
  • reverse如果指定为True,则排序后会再翻转列表
    sorted()在用法上与其完全一致,唯一不同点是sorted()会建立一个原列表的副本,该副本为排序后的列表,还是相当于深拷贝与浅拷贝的概念。

2.列表的访问
其访问形式类似于C++中的数组形式,如:

list1 = ["烤面筋","里脊扒饼","炸鲜奶"]
print(list1[2])

输出结果为

炸鲜奶

3.列表的遍历

① 直接使用for循环

list1 = ["烤面筋","里脊扒饼","炸鲜奶"]
for item in list1:
	print(item)

② 使用for+enumerate()

使用组合可以同时输出索引值和元素内容

list1 = ["烤面筋","里脊扒饼","炸鲜奶"]
for index,item in enumerate(list1):
	print(index+1,item)

输出:

1 烤面筋
2 里脊扒饼
3 炸鲜奶

4.列表元素的添加修改和删除

添加有三种方法:

  • append() 列表末尾添加
  • extend() 列表末尾添加一个列表,注意内部一定要加[ ]
  • insert()某一元素前插入元素,执行效率较低不推荐使用。

修改元素直接赋值即可,删除元素使用del,如:

list1 = ["烤面筋","里脊扒饼","炸鲜奶"]
del list1[-1]
print(list1)

输出结果:

['烤面筋', '里脊扒饼']

如果要将一个不确定位置只确定元素值进行删除则使用remove()函数,要注意上面的del不是一个函数而是一条语句,它是索引式的删除。

list1 = ["烤面筋","里脊扒饼","炸鲜奶"]
list1.remove("炸鲜奶")
print(list1)

5.列表的统计计算

  • count() 计数
  • index()获取指定元素首次出现的位置
  • sum()求和

6.列表推导式

语法格式:

listname = [Expression for var in LIST]

 - Ex 计算表达式
 - var 循环变量
 - LIST 计算范围

筛选条件列表:

newlist = [Expression for var in list if condition]

元组

元组——tuple在形式上以()和,表示,在内容上任何类型的内容都可以放在一个元组中,通常元组用于保存程序中不可修改的内容,创建元组时直接赋值即可。

下列两种形式都是元组:

food = "水饺","灌汤包"
food = ("韩国炸鸡",)

下例则只是定义一个字符串:

food = ("韩国炸鸡")

在这里有一个和列表相同用法的转换方式:

tuple(data)

对符合元组的访问类似于C++中的二维数组形式:

food = ('abc',28,('炒酸奶','烤面筋'))
print(food[2])
('炒酸奶', '烤面筋')
print(food[2][0])
炒酸奶
print(food[2][1])
烤面筋

①元组元素的修改:

元组中的元素是无法直接修改的,但我们可以通过元组的重新赋值、连接组合进行修改,注意,元组只能和元组进行组合,除此之外的其他组合都会报错;数组连接时如果连接的数组只有一个元素一定不要忘记后面的逗号

②元组推导式:

与列表几乎完全一致,把[ ]改为()即可,但元组推导式的结果不是一个元组或列表,而是一个生成器对象,转换为元组使用tuple(),转换为列表则使用list()

字典

1.字典的创建和删除

dictionary = {'key1':'value1','key2':'value2',...,}

很容易想到字典的关键在于“键-值对”,“键”是索引,“值”即是键索引的内容。
引入创建字典的函数:dictionary = dir(zip(list1,list2)),list1做键,2做值,如果list1和list2的长度不同,则最后的结果长度与最短的一致,例:

name = ['张三','李四','王五']
age = ['19','20','18']
dictionary = dict(zip(name,age))#转换为字典,如果不用dict转换则其保持不可读的生成器模式
print(dictionary)

输出结果:

{'张三': '19', '李四': '20', '王五': '18'}

也可以通过给定的键值对创建字典

dictionary = dict(key1=value1,key2=value2,...,)

还可以使用函数fromkeys()创建只有键的空字典

name = ['张三','李四','王五']
dictionary = dir.fromkeys(name)
print(dictionary)

输出:

{'张三': None, '李四': None, '王五': None}

使用dictionary.clear删除字典元素。

2.字典的访问——键值对

判断访问的方法有两种:

  • if判断处理
dictionary = {'张三': '19', '李四': '20', '王五': '18'}
print(dictionary['张三'] if '张三' in dictinoary else '字典无此人')
  • get()指定获取
dictionary.get(key,[default])

3.字典的遍历

Python提供了items()函数用于字典的遍历:

for item in dictionary.items():
	print(item)

这样得到的将是一个元组,若想获取各个具体的键和值,可以使用下列代码:

dictionary = {'张三': '19', '李四': '20', '王五': '18'}
for key,value in dictionary.items():
	print(key,"的年龄是",value)

执行结果:

张三 的年龄是 19
李四 的年龄是 20
王五 的年龄是 18

Python还提供了values()和keys()方法专门获得值和键,用法与上述遍历一致。

4.添加、修改和删除字典元素

  • 添加元素格式:
dictionary[key] = value #会添加到末尾
  • 修改元素:

格式与添加的格式完全一致,只需给它直接赋新的value,当元素存在时即相当于修改功能

  • 删除元素(这里直接介绍开发中最保险的方法——加入条件判断)
dictionary = {'张三': '19', '李四': '20', '王五': '18'}
if '李四' in dictionary:
	del dictionary['张三']
print(dictionary)

5.字典推导式

推导式我们已经遇到了很多,字典推导式依旧和前面保持一致,直接上代码格式:

import random
randomdict = {i:random.randint(10,100) for i in range(1,5)} #创建字典
print(randomdict)

本文地址:https://blog.csdn.net/tomatoin/article/details/107416648