当前位置: 移动技术网 > IT编程>脚本编程>Python > Python 列表及其应用

Python 列表及其应用

2020年07月20日  | 移动技术网IT编程  | 我要评论

列表

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网