python列表

本文详细介绍了Python列表的基本操作,包括创建、访问、更新、删除列表元素,以及列表的排序、遍历、切片、转换等功能。同时,讨论了列表与其他数据结构如元组、字典之间的转换,并提供了丰富的代码示例和练习题,帮助读者深入理解Python列表的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表是一个数据的集合,集合内可以放任何数据类型,可对集合方便的增删改查操作。Python已经内置确定序列的长度以及确定最大和最小的元素的方法

在这里插入图片描述
一,List list()方法
  list()方法将元组转换为列表
  注意:元祖与列表是非常相似的,区别在于元组的元素值不能修改,元祖是放在括号中,列表是放在方括号里面的。

a_tuple = ('123','abc',123)
a_list = list(a_tuple)
print(a_tuple)
print(a_list)
结果:
('123', 'abc', 123)
['123', 'abc', 123]

二,创建一个列表
  只要把逗号分隔的不同的数据项使用方括号括起来即可。如下:

a_list = [1,2,3,4,5,6]
b_list = ['a','b','c','d']
c_list = ['a','b','c',1,2,3,4]

三,访问列表中的值
  与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

a_list = [1,2,3,4,5,6]
b_list = ['a','b','c','d']
c_list = ['a','b','c',1,2,3,4]
print(a_list[0])
print(b_list[1:3])
print(c_list[:])
结果:
1
['b', 'c']
['a', 'b', 'c', 1, 2, 3, 4]

四,更新列表
  可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:

a_list = [1,2,3,4,5,6]
b_list = ['a','b','c','d']
c_list = ['a','b','c',1,2,3,4]
a_list[0] = 123
print(a_list)
b_list.append("efg")
print(b_list)
结果:
[123, 2, 3, 4, 5, 6]
['a', 'b', 'c', 'd', 'efg']

五,删除列表元素
  1,可以使用 del 语句来删除列表的的元素,
  2,可以使用pop()移除某元素并返回该元素,
  3,使用remove()删除从左找到的第一个指定元素,如下实例:

a_list = [1,2,3,4,5,6]
b_list = ['a','b','c','d']
c_list = ['a','b','c',1,2,3,41]
del a_list[2]
print(a_list)
b = b_list.pop()
print(b)
c = c_list.pop(2)  #也可以删除指定元素,并返回
print(c)
d = c_list.remove(1)
print(c_list)
结果:
[1, 2, 4, 5, 6]
d
c
['a','b','c',2,3,41]

六,列表脚本操作符
 列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

python表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print x,1 2 3迭代

七,列表操作函数
    1、cmp(list1, list2):比较两个列表的元素
    2、len(list):列表元素个数
    3、max(list):返回列表元素最大值
    4、min(list):返回列表元素最小值
    5、list(seq):将元组转换为列表

八,列表排序

注意排序优先级:数字>大写字母>小写字母>符号>中文
  1,永久性排序:sort()
  2,临时性排序:sorted()
  3,反转排序:reverse()

l1 = ["排序","?","123","w","W"]
l2 = ['1','2','3']
a = l1.sort()      #永久性排序,就是这个列表就变了
print(l1)
b =sorted(l2)    #临时性排序,就是可以赋值某个变量
print(b)
c = l1.reverse()
print(l1)
结果:
['123', '?', 'W', 'w', '排序']
['1', '2', '3']
['排序', 'w', 'W', '?', '123']

九,遍历列表
  除了一般的遍历,还可以遍历切片列表

list=['1','2','3']
for value in list:#末尾加上冒号
    print(value)#每次循环都把list列表中的值赋给value,赋值从索引号0开始#循环的语句需要缩进
 
结果:
1
2
3
 
 
list=['1','2','3','4','5','6','7']
for value in list[3:]:#遍历索引3之后的数值
    print(value)
 
结果:
4
5
6
7

十,创建数值列表
  1,使用range()函数生成一系列数值
  2,遍历range()函数生成的数值

value=list(range(0,6))#range()生成0~6的数值,list()函数把数值转换成列表
print(value)
结果:
[0, 1, 2, 3, 4, 5]
 
for value in range(0,6):#range(0,6)顺序生成从0到5的数值
    print(value)
结果:
0
1
2
3
4
5
 
>>> range(1,5)#代表从1到5(不包含5)----------------[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,每次加2(不包含5)-----[1, 3]
>>> range(5) #代表从0到5(不包含5)-----------------[0, 1, 2, 3, 4]

十一,复制列表
  1,复制整个列表
  2,复制切片列表

list=['1','2','3','4','5']
list_2=list[:]#从起始索引到末尾索引
print(list_2)
结果:
['1', '2', '3', '4', '5']
 
list=['1','2','3','4','5']
list_2=list[:]#从起始索引到索引3
print(list_2)#输出['1','2','3']
结果:
['1', '2', '3', '4', '5']

十二,列表切片
切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。

在这里插入图片描述
格式: [start : end : step]

• [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
• [start:] 从start 提取到结尾
• [:end] 从开头提取到end - 1
• [start:end] 从start 提取到end - 1
• [start : end : step] 从start 提取到end-1,每step 个字符提取一个
• 左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1

list = [1, 2, 3, 4, 5, 6, 7]
>>> list[0:] #列出索引0以后的---------[1, 2, 3, 4, 5, 6, 7]
>>> list[1:] #列出索引1以后的---------[2, 3, 4, 5, 6, 7]
>>> list[:-1] #列出索引-1之前的-------[1, 2, 3, 4, 5, 6]
>>> list[1:3] #列出索引1到3之间的-----[2]
 
 
#形成reverse函数的效果:
>>> list[::-1]#[7, 6, 5, 4, 3, 2, 1]
>>> list[::-2]#[7, 5, 3, 1]
 
 
>>> range(1,5)#代表从1到5(不包含5)----------------[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,每次加2(不包含5)-----[1, 3]
>>> range(5) #代表从0到5(不包含5)-----------------[0, 1, 2, 3, 4]

十三,tuple,dict,list之间的转换
  直接声明的list和tuple无法通过dict()转换成dict类型
  直接声明的dict可以通过tuple()和list()分别转换成tuple和list类型(结果只包含了keys),可是此时却能通过dict()反转回原来的dict类型

13-1、字典

dict = {'name': 'Zara', 'age': 7}
#字典转为字符串
str(dict)
#字典可以转为元组
tuple(dict)
#字典可以转为元组
tuple(dict.values())
#字典转为列表
list(dict)
#字典转为列表
dict.values

13-2、元组

tup=(1, 2, 3, 4, 5,6,7,8)
#元组转为字符串
tup.__str__()
#元组转为列表
list(tup)
#元组不可以转为字典

13-3、列表

nums=[1, 3, 5, 7, 9, 11, 13];
#列表转为字符串
str(nums)
#列表转为元组
tuple(nums)
#列表不可以转为字典

13-4、字符串

str="(1,2,3)"
#字符串转为元组
tuple(eval(str))
#字符串转为列表
list(eval("(1,2,3)"))
#字符串转为字典
str1="{'name':'ljq', 'age':24}"
eval(str1)

十四,列表的练习
写代码,要求实现下面每一个功能
  li=[‘alex’,‘eric’,‘rain’]
  1,计算列表长度并输出
  2,列表中追加元素“servn",并输出添加后的列表
  3,请在列表的第一个位置插入元素‘tony’,并输出添加后的列表
  4,请修改列表位置元素‘kelly’,并输出修改后的列表
  5,请在列表删除元素‘eric’,并输出删除后的列表
  6,请删除列表中的第2个元素,并输出删除后的元素的值和删除元素后的列表
  7,请删除列表中的第三个元素,并输出删除后的列表
  8,请删除列表的第2到4个元素,并输出删除元素后的列表
  9,请用for len range输出列表的索引
  10,请使用enumrate输出列表元素和序号
  11,请使用for循环输出列表中的所有元素

# li = ['alex','eric','rain']
# 1,计算列表长度并输出
# print(len(li))
# 列表中追加元素“seven”,并输出添加后的列表
# li.append('seven')
# print(li)
# 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
# li.insert(1,'tony')
# print(li)
#请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
# li[1] ='kelly'
# print(li)
# 请删除列表中的元素“eric”,并输出修改后的列表
# a =li.pop(2)
# print(li)
# li.remove('eric')
# print(li)
# 请删除列表中的第2个元素,并输出删除元素后的列表
# b =li.pop(1)
# print(b)
# print(li)
# 请删除列表中的第2至4个元素,并输出删除元素后的列表
# c = li[2:4]
# d = set(li)-set(c)
# # print(list(d))
# del li[1:4]
# print(li)
# 请将列表所有的元素反转,并输出反转后的列表
# e = li.reverse()
# print(li)
# 请使用for、len、range输出列表的索引
# for i in range(len(li)):
#     print(i)
# 请使用enumrate输出列表元素和序号(序号从100开始)
# for index in enumerate(li):
#     print(index)
# for index,i in enumerate(li,100):
#     print(index,i)
# for i in li:
#     print(i)

十五,写代码,有如下元组,请按照功能要求实现每一个功能
  tu = (‘alex’,'eric,‘rain’)
  1,计算元组的长度并输出
  2,获取元祖的第二个元素,并输出
  3,获取元祖的第1-2个元素,并输出
  4,请用for输出元祖的元素
  5,请使用for,len,range输出元组的索引
  6,请使用enumerate输出元组元素和序号,(从10开始)

tu = ('alex','eric','rain')
#   1,计算元组的长度并输出
print(len(tu))
#   2,获取元祖的第二个元素,并输出
print(tu[1])
#   3,获取元祖的第1-2个元素,并输出
print(tu[0:2])
#   4,请用for输出元祖的元素
for i in tu:
    print(i)
#   5,请使用for,len,range输出元组的索引
for i in range(len(tu)):
    print(i)
#   6,请使用enumerate输出元组元素和序号,(从10开始)
for index,i in enumerate(tu,10):
    print(index,i)

十六,list中的append和extend的区别
list.append(object) 向列表中添加一个对象object
list.extend(sequence) 把一个序列seq的内容添加到列表中
举例如下:
使用append的时候,是将new_media看作一个对象,整体打包添加到music_media对象中。

music_media = ['compact disc', '8-track tape', 'long playing record']
new_media = ['DVD Audio disc', 'Super Audio CD']
music_media.append(new_media)
print music_media
>>>['compact disc', '8-track tape', 'long playing record', ['DVD Audio disc', 'Super Audio CD']]

使用extend的时候,是将new_media看作一个序列,将这个序列和music_media序列合并,并放在其后面。

music_media = ['compact disc', '8-track tape', 'long playing record']
new_media = ['DVD Audio disc', 'Super Audio CD']
music_media.extend(new_media)
print music_media
>>>['compact disc', '8-track tape', 'long playing record', 'DVD Audio disc', 'Super Audio CD']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值