Python列表

目录

访问

添加

+

insert

append

extend

修改

通过下标修改单个元素

通过切片修改多个元素

删除

del

pop

remove

clear

查找

in

not in

count

index

排序

reverse

sort


列表:可以一次性存储多个数据,并且元素可以是任意的类型。

列表的定义:中括号包围所有的元素,每个元素间用逗号隔开。

li = ['a', 'b', 'c', 1, 1.5, True, 'music']

访问

列表和字符串一样,也是有下标的,下标从0开始,到列表的长度-1,同样支持负数,-1表示最后一个元素,-2表示倒数第二个元素,以此类推。

我们可以通过下标直接访问到某个元素。

li = ['a', 'b', 'c', 1, 1.5, True, 'music']
print(li[0]) # a
print(li[1]) # b
print(li[-1]) # music

如果我们要获取列表的所有元素呢?我们可以通过循环来获取。

列表本身就是一个可以迭代的对象,因此我们可以直接for循环读取。

li = ['a', 'b', 'c', 1, 1.5, True, 'music']
# 循环读取
for e in li: # 列表是可迭代对象,可以通过for in 方式吧一个个元素取出来
    print(e)

同样可以通过while循环加下标的方式来获取。

li = ['a', 'b', 'c', 1, 1.5, True, 'music']
i = 0
while i < len(li):
    print(li[i]) # 通过下标取值
    i += 1

添加

+

我们可以直接使用+拼接两个列表,会返回一个拼接后的新列表。

l = ["Python", "C++", 'Java']
b = [1991, 1998, 1995]
info = l + b
print(info) #['Python', 'C++', 'Java', 1991, 1998, 1995]

insert

语法: listname.insert(index,obj) 表示在index前插入obj这个元素。

插入元素

在下标1的位置,也就是C++前插入一个C。

l = ["Python", "C++", 'Java']
l.insert(1, 'C') #改变原列表
print(l) #['Python', 'C', 'C++', 'Java']

插入元组

insert不仅仅可以插入元素,也可以插入一个元组,元组就是使用()包含的,这里后面会介绍,此时会把元组当做一个整体插入进去,下面是在下标2之前也就是Java之前插入。

l = ["Python", "C++", 'Java']
# 插入一个元组
t = ('c#', 'go')
l.insert(2, t) ['Python',  'C++', ('c#', 'go'), 'Java']
print(l)

append

语法:listname.append() 表示尾插

尾插元素

l = ["Python", "C++", 'Java']
l.append('PHP')
print(l) # ['Python', 'C++', 'Java', 'PHP']

尾插元组

l = ["Python", "C++", 'Java']
t = ('a', 'b', 'c')
l.append(t) 
print(l) # ['Python', 'C++', 'Java', ('a', 'b', 'c')]

extend

语法: listname.extend(obj) 在列表末尾添加obj,并可以把obj中的元素拆分为单个。

插入元组

我们可以看到,上面的append还是Inert插入元组都是将元组作为一个整体,也就是()的形式添加进去的,而extend是把元组里吗元素打散添加到extend中。

l = ["Python", "C++", 'Java']
t = ('a', 'b', 'c')
l.extend(t)
print(l)  # ['Python', 'C++', 'Java', 'a', 'b', 'c']

插入元素

l = ["Python", "C++", 'Java']
l.extend('9')
print(l)  # ['Python', 'C++', 'Java', '9']

修改

修改的本质是赋值,因此我们可以通过下标来进行修改。

通过下标修改单个元素

nums = [1, 2, 3, 4, 5]
nums[2] = 9 # 通过下标访问指定元素,然后给该元素赋新值
print(nums) # [1, 2, 9, 4, 5]

通过切片修改多个元素

nums = [1, 4, 3, 5, 9]
nums[2:5] = [10,20,30] # 左闭右开[2,5),步长默认1
print(f'切片修改元素: {nums}') #[1, 4, 10, 20, 30]

删除

del

del删除整个列表

语法:del listname (删除整个列表)

 1) del listname 删除整个列表
 s = list('hello') # 把字符串转换为列表
 print(s)  #['h', 'e', 'l', 'l', 'o']
 del s # 删除整个列表
 print(s) # 此时s会没有被定义,也就是说s用不了

del删除单个元素

s = [1,2,3,4,5,6,7]
del s[1]
print(s) #[1, 3, 4, 5, 6, 7]

del删除多个元素

s = [1,2,3,4,5,6,7]
# del s[1]
# print(s)
# del 删除多个值
del s[2:5] # 同样左闭右开[2,5)
print(s) # [1, 2, 6, 7]

pop

语法:pop listname.pop(index) index不写默认删除列表中最后一个元素。

删除下标为x的元素

nums = [1, 2, 3, 4, 5, 6, 7, 8]
nums.pop(3)
print(nums) #[1, 2, 3, 5, 6, 7, 8]

默认不带参数是尾删

nums = [1, 2, 3, 4, 5, 6, 7, 8]
nums.pop()
print(nums) #[1, 2, 3, 4, 5, 6, 7]

remove

语法:listname.remove(val)  进行值删除,无则报错, 如果有相同值, 删除第一个。

下面要删除2,列表中有存在两个2,但是会删除第一个。

names = ['music', 2, 3, 4,5,2]
names.remove(2)
print(names) # ['music', 3, 4, 5, 2]

clear

语法:listname.clear() 清除所有元素。

names = ['music', 2, 3, 4,5,2]
names.clear()
print(names) # 空

查找

in

in 存在,在什么里面 True 否则为 False。

list1 = ['lucy', 'tom', 'music', 'wilia']
name = input('需要查找的名字是: ')
if name in list1: # 如果name在list1里面,则执行if里面的语句
    print('找到了')
else:
    print('没找到')

not in

not in: 不在什么里面 True,否则为False。

list1 = ['lucy', 'tom', 'music', 'wilia']
name = input('需要查找的名字是: ')
if name not in list1: # 如果name在list1里面,则执行if里面的语句
    print('没找到')
else:
    print('找到了')

count

语法: listname.count(obj) 统计obj在列表中出现的次数。

如果返回0,说明不存在,否则存在。

# count如果返回0,则表示列表中不存在这个元素--可以用count判断某个元素是否存在
scores = [421,24,53,25,23,23,3,23]
print(scores.count(23)) # 3 统计2出现的次数
print(scores.count(99)) # 0 表示不在

index

语法: listname.index(obj,start,end) start,end可以不写,默认整个列表里查找,同样是左闭右开的。

查找23的下标,23出现了多出,会返回第一个23的下标。如果这个元素不存在直接报错。

scores = [421,24,53,25,23,23,3,23]
print(scores.index(23)) #4
print(scores.index(9)) # scroes中没有9,会报错

排序

reverse

语法:listname.reverse() 在原列表上进行逆置。

li1 = [1, 4, 3, 2, 5, 9, 25]
li1.reverse() # 在源列表上逆置 [25, 9, 5, 2, 3, 4, 1]
print(li1)

sort

语法: listname.sort()在原列表上进行排序。

升序

sort默认就是升序的。

li1 = [1, 4, 3, 2, 5, 9, 25]
li1.sort() # 排序 升序
print(li1) # [1, 2, 3, 4, 5, 9, 25]

降序

sort的reverse参数给True就是降序。

li1 = [1, 4, 3, 2, 5, 9, 25]
li1.sort(reverse=True) # 降序
print(li1) #[25, 9, 5, 4, 3, 2, 1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值