python学习笔记——列表和元组(2)

目录

列表介绍:

列表操作:

1、列表的创建和删除

1.1赋值运算符直接创建列表

1.2创建空列表

1.3创建数值列表

1.4删除列表

2、访问列表元素

3、遍历列表Traversal

3.1 for循环获得所有元素

3.2 for循环+enumerate()函数 获得所有元素和索引

4、增删改列表元素

4.1添加元素

4.1.1 末尾添加新元素

4.1.2 中间插入新元素

4.1.3 末尾添加新列表

4.2 修改元素

4.3 删除元素

4.3.1 根据索引删除元素

4.3.2 根据元素值进行删除

5、列表统计计算

5.1 count()方法

5.2 index()方法

5.3 sum()函数

6、列表排序

6.1 列表对象的sort()方法

6.2 内置的sorted()函数

7、列表推导式

7.1 range()函数快速生成数值列表

7.2 根据已有列表生成新列表


列表介绍:

列表:顾名思义,序列的表。其组成元素可以是整数、实数、字符串、其他序列、对象等等中的一种或多种。

列表是一个可变序列:[element1,  element2, ......, elementn]

列表操作:

1、列表的创建和删除

1.1赋值运算符直接创建列表

语法格式:listname = [elem1, elem2, ......elemn]

>>> multiList = ['python', 28, "春眠不觉晓", ["cane", "自动化运维", "web开发"]]
>>> print(multiList)
['python', 28, '春眠不觉晓', ['cane', '自动化运维', 'web开发']]

1.2创建空列表

>>> emptyList = []
>>> print(emptyList)
[]

1.3创建数值列表

range(start, end, step)函数多用于for循环之中,结果是以step步长生成[start, end)范围内的整数(不包括end)。

list()函数可以将序列转换为列表,python学习笔记——列表和元组(1)-CSDN博客中最后一节有提到过。

使用其创建数值列表如下:

>>> list(range(2,21,2))
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

>>> string = "人生苦短,我用python"
>>> list(string)
['人', '生', '苦', '短', ',', '我', '用', 'p', 'y', 't', 'h', 'o', 'n']

1.4删除列表

实际使用过程中,Pyhton会自动销毁不用的列表,无需手动删除

>>> print(multiList)
['python', 28, '春眠不觉晓', ['cane', '自动化运维', 'web开发']]
>>> del multiList
>>> print(multiList)
Traceback (most recent call last):
  File "<pyshell#95>", line 1, in <module>
    print(multiList)
NameError: name 'multiList' is not defined
>>> del emptyList
Traceback (most recent call last):
  File "<pyshell#101>", line 1, in <module>
    del emptyList
NameError: name 'emptyList' is not defined

2、访问列表元素

索引、切片

3、遍历列表Traversal

3.1 for循环获得所有元素

语法格式:for item in listname

3.2 for循环+enumerate()函数 获得所有元素和索引

语法格式:for index, item in enumerate(listname)

#--------------------------Traversal.py-------------------------
print("这里是2024年江苏省GDP排名靠前的一个城市:")
city = ["苏州", "南京", "无锡", "常州", "徐州"]
print("遍历输出每一个城市:")
for item in city:
    print(item)
print("遍历输出每一个城市和索引:")
for index, item in enumerate(city):
    print(index+1, item)

#--------------------------运行输出结果--------------------------
这里是2024年江苏省GDP排名靠前的一个城市:
遍历输出每一个城市:
苏州
南京
无锡
常州
徐州
遍历输出每一个城市和索引:
1 苏州
2 南京
3 无锡
4 常州
5 徐州

4、增删改列表元素

4.1添加元素

4.1.1 末尾添加新元素

序列相加 效率较低,不推荐使用。

listname.append(newElement)方法,注意叫方法,不是函数,是列表对象的封装的solution。

>>> phone = ["摩托罗拉", "诺基亚", "三星", "OPPO"]
>>> phone.append("华为")
>>> print(len(phone), phone)
5 ['摩托罗拉', '诺基亚', '三星', 'OPPO', '华为']
>>> 
>>> phone.append(1)
>>> print(len(phone), phone)
6 ['摩托罗拉', '诺基亚', '三星', 'OPPO', '华为', 1]
4.1.2 中间插入新元素

listname.insert(index, newElement)方法:在指定索引前面添加新元素,效率低于append(),不推荐使用。

>>> phone = ["摩托罗拉", "诺基亚", "三星", "OPPO"]
>>> phone.insert(0,"华为")
>>> print(len(phone), phone)
5 ['华为', '摩托罗拉', '诺基亚', '三星', 'OPPO']
4.1.3 末尾添加新列表

listname.extend(newList)

>>> phone1 = ["摩托罗拉", "诺基亚", "三星", "苹果"]
>>> phone2 = ["华为", "小米", "vivo", "oppo"]
>>> phone1.extend(phone2)
>>> print(phone1)
['摩托罗拉', '诺基亚', '三星', '苹果', '华为', '小米', 'vivo', 'oppo']

4.2 修改元素

直接通过索引下标修改对应元素即可。

4.3 删除元素

4.3.1 根据索引删除元素
>>> phone = ['摩托罗拉', '诺基亚', '三星', '苹果', '华为', '小米', 'vivo', 'oppo']
>>> del phone[3]
>>> print(phone)
['摩托罗拉', '诺基亚', '三星', '华为', '小米', 'vivo', 'oppo']
4.3.2 根据元素值进行删除

listname.remove(element)

>>> phone = ['摩托罗拉', '诺基亚', '三星', '苹果', '华为', '小米', 'vivo', 'oppo']
>>> phone.remove("苹果")
>>> print(phone)
['摩托罗拉', '诺基亚', '三星', '华为', '小米', 'vivo', 'oppo']

5、列表统计计算

5.1 count()方法

listname.count(obj) 获取列表内指定元素出现的次数(obj全匹配)

>>> song = ["一首歌的时间", "黑色毛衣", "后来的我们", "轨迹", "一路向北", "黑色毛衣", "荷塘月色"]
>>> print(song.count("黑色毛衣"))
2

5.2 index()方法

listname.index(obj)  获取列表内指定元素首次出现的下标

>>> song = ["一首歌的时间", "黑色毛衣", "后来的我们", "轨迹", "一路向北", "黑色毛衣", "荷塘月色"]
>>> print(song.index('黑色毛衣'))
1

如果obj不在列表,则抛出异常

#-----------------------------------test.py-------------------------------
song = ["一首歌的时间", "黑色毛衣", "后来的我们", "轨迹", "一路向北", "黑色毛衣", "荷塘月色"]
if "黑色" in song:
    print(song.index("黑色"))
if "一路向北" in song:
    print(song.index("一路向北"))

#----------------------------------输出结果-------------------------------
4

5.3 sum()函数

sum(listname, start)  用于计算数字列表的和,最终加上start参数

#-----------------------------------test.py-------------------------------
number = [90, 95, 98, 92, 95, 93]
sumnum = sum(number)
sumnum2 = sum(number, 1000)
print(sumnum)
print(sunnum2)

#----------------------------------输出结果-------------------------------
563
1563

6、列表排序

6.1 列表对象的sort()方法

listname.sort(key=none, reverse=False)  对列表元素设置key后进行升序(reverse=False)或者降序(reverse=True)排列,原列表中元素顺序将发生改变

#-----------------------------------test.py-------------------------------
number = [90, 95, 98, 92, 95, 93]
number.sort()
print(number)

number = [90, 95, 98, 92, 95, 93]
number.sort(reverse=False)
print(number)

number = [90, 95, 98, 92, 95, 93]
number.sort(reverse=True)
print(number)

number = [90, 95, 98, 92, 95, 93]
number.sort()
print(number)

number = [90, 95, 98, 92, 95, 93]
number.sort(reverse=False)
print(number)

number = [90, 95, 98, 92, 95, 93]
number.sort(reverse=True)
print(number)

animal = ["Dog", "cat", "Elephant", "seagull", "seal", "Monkey"]
animal.sort() #大小写分开排序
print(animal)

animal = ["Dog", "cat", "Elephant", "seagull", "seal", "Monkey"]
animal.sort(reverse=True) #大小写分开排序
print(animal)

animal = ["Dog", "cat", "Elephant", "seagull", "seal", "Monkey"]
animal.sort(key=str.lower, reverse=False)
print(animal)

#----------------------------------输出结果-------------------------------
[90, 92, 93, 95, 95, 98]
[90, 92, 93, 95, 95, 98]
[98, 95, 95, 93, 92, 90]
['Dog', 'Elephant', 'Monkey', 'cat', 'seagull', 'seal']
['seal', 'seagull', 'cat', 'Monkey', 'Elephant', 'Dog']
['cat', 'Dog', 'Elephant', 'Monkey', 'seagull', 'seal']

6.2 内置的sorted()函数

sorted(list, key, reverse=False) 原列表中元素顺序不会发生改变

#-----------------------------------test.py-------------------------------
animal = ["Dog", "cat", "Elephant", "seagull", "seal", "Monkey"]
animalUp = sorted(animal, key=str.lower, reverse=False)
print("animal:", animal)
print("animalUp:", animalUp)

#-----------------------------------输出结果-------------------------------
animal: ['Dog', 'cat', 'Elephant', 'seagull', 'seal', 'Monkey']
animalUp: ['cat', 'Dog', 'Elephant', 'Monkey', 'seagull', 'seal']

7、列表推导式

定义:可以快速生成一个列表,或者根据某个列表生成一个满足某些要求的列表

7.1 range()函数快速生成数值列表

list = [expression for var in range]

expression:表达式   var:range对象内的元素  range:range对象

#-----------------------------------test.py-------------------------------
import random
list = []
for i in range(10):
    list.append(random.randint(10, 100))
print("逐一生成元素列表:", list)

list = [random.randint(100, 200) for i in range(10)]
print("快速生成列表:", list)


#-----------------------------------输出结果-------------------------------
逐一生成元素列表: [38, 78, 55, 89, 63, 37, 82, 88, 40, 11]
快速生成列表: [182, 145, 104, 180, 187, 101, 181, 165, 102, 195]

7.2 根据已有列表生成新列表

1、newlist = [expression for var in oldlist]

expression:表达式   var:oldlist内的元素 

#-----------------------------------test.py-------------------------------
list = [38, 78, 55, 89, 63, 37, 82, 88, 40, 11]
newlist = [i*i for i in list]

print("新列表:", newlist)


#-----------------------------------输出结果-------------------------------
新列表: [1444, 6084, 3025, 7921, 3969, 1369, 6724, 7744, 1600, 121]

2、newlist = [expression for var in oldlist if condition]

#-----------------------------------test.py-------------------------------

list = [38, 78, 55, 89, 63, 37, 82, 88, 40, 11]
newlist = [i*i for i in list if i%2 == 0]

print("新列表:", newlist)


#-----------------------------------输出结果-------------------------------
新列表: [1444, 6084, 6724, 7744, 1600]

​​​​​​​

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值