pathon进阶_基础篇5(列表)

列表相关操作

列表元素的增加、删除、修改

1.增–在列表中添加元素

1)append(添加一个元素)
列表.append(元素) - 在列表中最后添加指定元素(不会产生新的数据,是直接修改原列表)

sports = ['篮球','足球','乒乓球']
sports.append(['羽毛球','排球'])
print(sports)

2)insert
列表.insert(下标,元素)-在列表指定下标前插入指定元素
3)extend
列表.extend(序列)- 将序列中所有的元素添加到列表的最后

sports = ['篮球','足球','乒乓球']
sports.extend(['羽毛球','排球'])
print(sports)

实例: 不及格分数后面添加0
方法1

list1= [1,2,3,60,50]
list2=list1[:]
i=1
for index,value in enumerate(list2):
    if value<60:
        list1.insert(index+i,0)
        i+=1
print(list1)

方法2:

list1= [1,2,3,60,50]
list2=list1[:]
i=0
for index,value in enumerate(list2):
    if value<60:
        list1.insert(i+1,0)
        i+=1
    i+=1
print(list1)

方法3:

list1= [1,2,3,60,50]
list2=list1[:]
j=1
for i in range(len(list2)):
    if list2[i]<60:
        list1.insert(i+j,0)
        j+=1
print(list1)

2 删除元素

1)del -删除指定下标元素(越界会报错)
del 列表[下标]

names = ['后裔','王昭君','伽罗','甄姬']
del names[1]        # 可以为正
del names[-1]      #  可以为负
 del names[10]     #IndexError: list assignment index out of range
print(names)

2)remove
列表.remove(元素) --删除列表中指定元素(如果元素不存在,会报错;如果元素由多个,只删除最前面的哪一个)

names = ['后裔','王昭君','伽罗','甄姬']
names.remove("伽罗")

3)pop(删除的数还可以放在内存中应用)
列表.pop() - 取出来列表中的最后一个元素,返回的数据就是取出来的元素
列表.pop(下标) - 取出列表中指定下标对应元素,返回的数据就是取出来的元素
4) clear
列表.clear() -删除列表中所有元素

names = ['后裔','王昭君','百里','']
names.clear()     # 效率比直接赋值为[]高,不需要重新挖坑
print(names)
names = ['后裔','王昭君','百里','']
names=[]          # 重新挖坑
print(names)

**应用:**删除60以下的值(删除元素前先做备份)

scores= [90,24,23,2,89,67,33,55]
scores_1=scores[:]
for i in scores_1:
    if i<60:
        scores.remove(i)

print(scores)

注意:(1)python中的变量和指针类似,保存的是数据在内存中的地址
(2)python中用一个变量直接给另一个变量赋值,赋的是变量中保存的地址

3. 改 - 修改列表元素的值

列表[下标] = 新元素 - 将列表指定下标对应的元素修改成新的元素

movies = ['恐怖游戏','致命ID','忍者神龟']
movies[-2]='huchaolin'
print(movies)

scores= [90,24,23,2,89,67,33,55]
for index,value in enumerate(scores):
    if value<60:
        scores[index]=0
print(scores)

列表的基本操作和相关方法

1.列表的加法和乘法运算

列表1+列表2 - 将列表1和列表2合并,产生一个新列表
列标N/N列表 - 列表中的元素重复N次,产生一个新的列表(N是正整数)

注意:加法和乘法运算不会修改原列表

list1=[1,2,3]+[4,5,6]
print(list1)    # [1,2,3,4,5,6]

list2=list1*3
print(list2)
print(list1)  # [1,2,3,4,5,6]

list3=list1+list2
print(list1)   # [1,2,3,4,5,6]

2.比较运算

1)==,!= (顺序也有关系)

print([10,20,30]==[30,20,10])  # False
print([10,20,30]==[10,20,30])  # True

2)>,<,>=,<=
两个列表比较大小,比较的是第一对不相等的元素的大小(从前往后下标相同的元素为一对)

print([100,200,300,400]>[200,100]) #False
print([100,200,300,400]>[100,100]) #True

3.in 和 not in

元素 in 列表 - 判断指定元素是否在指定列表中
元素 not in 列表 - 判断指定元素是否不在指定列表中
**应用练习:**筛选出同时选了两门课程的学生姓名

pythons=['志文','定名','朝林','叶帅']
javas=['志文','徐珧','定名','朝林','叶帅']
list_all=[]
for i in pythons:
    for j in javas:
        if i==j:
            list_all.append(i)
print(list_all)

pythons=['志文','定名','朝林','叶帅']
javas=['志文','徐珧','定名','朝林','叶帅']
list_all=[]
for i in pythons:
    if i in javas:
        list_all.append(i)
print(list_all)

4.len/max/min/sort/sorted/sum/list/copy/count/index/reserve

1)len(序列)-求序列的长度,获取序列中元素的个数

pythons=['志文','定名','朝林','叶帅']
print(len(pythons))

2)max(序列)/min(序列) —求序列中的最大值和最小值

scores=[80,78,56,90,45,67]
print(max(scores))
print(min(scores))

3)列表.sort() - 将列表中的元素从小到大排序(不会产生新的列表)
列表.sort(reverse=True) - 将列表中的元素从大到小排序(不会产生新的列表)
注意:此种排序方式为永久性排序,会更改原列表
4)sorted(‘序列’) -对序列中的元素从小到大排序,产生一个新的列表(不会修改原列表)

new_scores=sorted(scores)
print(scores)       # 仍然是原来的列表
print(new_scores)    

sorted(序列,reverse=True) - 对序列中的元素从大到小排序,产生一个新的列表.(不会修改原列表)

new_scores=sorted(scores,reverse=True)
print(new_scores)

5)sum(序列) - 求序列中所有元素的和(序列中的元素必须都是数字)

sum1=sum(scores)
print("和:",sum1)

6)list(序列) - 将指定的序列转换成列表
(1)所有的序列(字符串也是序列)都可以转换成列表
(2)将序列中的元素变成列表中的元素

print(list('abc'))
print(list(range(4)))

7)列表.copy() - 复制原列表,产生一个一模一样的新列表(相当于 列表[:];浅拷贝)

nums = [10,20,30]
nums1=nums
nums2 = nums.copy()
print(id(nums))     
print(id(nums1))    #nums1和nums地址一致
print(id(nums2))    #新地址

8).列表.count(元素) - 统计列表中指定元素的个数

foods=['大闸蟹','小龙虾','花甲','包子','小龙虾','包子','小龙虾']
print(foods.count("小龙虾"))

9).列表.index(元素)- 获取指定元素的下标(如果元素有多个返回值,返回第一个下标;如果不存在,会报错)

foods=['大闸蟹','小龙虾','花甲','包子','小龙虾','包子','小龙虾']
print(foods.index('花甲'))
# print(foods.index('大虾'))  //会直接报错

10).列表.reverse() - 将指定列表逆序

foods=['大闸蟹','小龙虾','花甲','包子','小龙虾','包子','小龙虾']
foods.reverse()
print(foods)   #['小龙虾','包子','小龙虾','包子','花甲','小龙虾','大闸蟹']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值