python3列表_python3 列表list

'''列表'''lst= [1, "apple", "bb"]'''列表相对于字符串,不仅可以存放不同的数据类型,而且可以存放大量的数据。32位Python可以存放:536870912个元素,64位可以存放:

115291504606846975个元素。而且列表是有序的(按照你保存的顺序),有索引,可以切片方便取值。'''

'''1、列表的索引'''lst= ["apple", "banana", "orange", "strawberry"]print(lst[0]) #apple

print(lst[1]) #banana

print(lst[-1]) #strawberry

lst[2] = "桔子" #注意,列表是可以发送改变的,这里和字符串不一样

print(lst) #['apple', 'banana', '桔子', 'strawberry']

s1= "apple"

#s1[0] = "A" # TypeError: 'str' object does not support item assignment

print(s1)

apple

banana

strawberry

['apple', 'banana', '桔子', 'strawberry']

apple

'''2、列表的切片'''lst= ["apple", "banana", "orange", "strawberry"]print(lst[0:3]) #['apple', 'banana', 'orange']

print(lst[:3]) #['apple', 'banana', 'orange']

print(lst[1::2]) #['banana', 'strawberry']

print(lst[2::-1]) #['orange', 'banana', 'apple']

print(lst[-1:-3:-2]) #['strawberry']

['apple', 'banana', 'orange']

['apple', 'banana', 'orange']

['banana', 'strawberry']

['orange', 'banana', 'apple']

['strawberry']

'''字符串倒序'''s1= "apple"

print(s1[::-1]) #elppa

elppa

'''str[start:end:step]

start:开始索引

end:结束索引,顾头不顾尾,取不到end

step:步长,掌握方向的,当step为正数时,start开始从左向右取;当step为负数时,start开始从右向左取。'''

'''3、添加列表元素

append(item) 添加到最后一个

insert(index, item) 根据索引位置添加

extend()'''lst= ["apple", "banana", "orange"]print(lst) #['apple', 'banana', 'orange']

lst.append("strawberry") #['apple', 'banana', 'orange', 'strawberry']

print(lst)

['apple', 'banana', 'orange']

['apple', 'banana', 'orange', 'strawberry']

lst =[]

lst.append("lily")

lst.append("lucy")

lst.append("tom")print(lst)

['lily', 'lucy', 'tom']

lst = ["apple", "banana", "orange"]

lst.insert(1, "strawberry")print(lst) #['apple', 'strawberry', 'banana', 'orange']

['apple', 'strawberry', 'banana', 'orange']

'''迭代添加'''lst= ["apple", "banana"]

lst.extend(["orange", "strawberry"])print(lst) #['apple', 'banana', 'orange', 'strawberry']

['apple', 'banana', 'orange', 'strawberry']

lst = [1, 2]

lst2= [7, 8]

new_lst= lst +lst2print(new_lst)

[1, 2, 7, 8]

'''4、删除列表元素

pop()删除最后一个元素

pop(index)根据索引号删除元素

remove(item) 删除指定的元素,当删除的元素不存在时,会报错。'''lst= ["apple", "banana", "orange", "strawberry"]print(lst) #['apple', 'banana', 'orange', 'strawberry']

deleted =lst.pop()print(deleted) #strawberry

print(lst) #['apple', 'banana', 'orange']

del2= lst.pop(2)print(del2) #orange

print(lst) #['apple', 'banana']

lst.remove("apple")print(lst) #['banana']#lst.remove("wahaha") # ValueError: list.remove(x): x not in list

print(lst) #['banana']

['apple', 'banana', 'orange', 'strawberry']

strawberry

['apple', 'banana', 'orange']

orange

['apple', 'banana']

['banana']

['banana']

'''清空列表'''lst.clear()print(lst) #[]

[]

'''使用切片删除列表元素'''lst= ["apple", "banana", "orange", "strawberry"]del lst[1:3]print(lst) #['apple', 'strawberry']

['apple', 'strawberry']

'''5、修改列表元素'''lst= ["apple", "banana", "orange", "strawberry"]

lst[0]= "苹果"

print(lst) #['苹果', 'banana', 'orange', 'strawberry']

['苹果', 'banana', 'orange', 'strawberry']

'''使用切片修改列表元素,如果步长不是1,要注意,元素的个数

报错:ValueError: attempt to assign sequence of size 1 to extended slice of size 2

值错误:尝试将大小为1的序列分配给大小为2的扩展切片'''lst= ["apple", "banana", "orange", "strawberry"]

lst[:3:3] = ["香蕉"]

lst[:3:3] = "香蕉" #报错:ValueError: attempt to assign sequence of size 2 to extended slice of size 1

print(lst) #['香蕉', 'banana', 'orange', 'strawberry']

---------------------------------------------------------------------------

ValueError Traceback (most recent call last)

in ()

6 lst = ["apple", "banana", "orange", "strawberry"]

7 lst[:3:3] = ["香蕉"]

----> 8lst[:3:3] = "香蕉" # 报错:ValueError: attempt to assign sequence of size 2 to extended slice of size 1

9 print(lst) # ['香蕉', 'banana', 'orange', 'strawberry']

ValueError: attempt to assign sequence of size 2 to extended slice of size 1

'''如果切片没有步长或者步长是1,则不用关心个数'''lst= ["apple", "banana", "orange", "strawberry"]

lst[1:3] = ["桔子"]print(lst) #['香蕉', '桔子', 'strawberry']

['apple', '桔子', 'strawberry']

'''6、查询列表元素

列表是一个可迭代对象,所以可以进行for循环'''lst= ["apple", "banana", "orange", "strawberry"]for item inlst:print(item)

apple

banana

orange

strawberry

'''7、统计列表中指定元素的个数count()'''lst= ["apple", "banana", "orange", "banana"]

c= lst.count("banana")print(c) #2

2

'''8、列表排序

sort()

reverse()'''lst= [5, 2, 6, 8, 1]

lst.sort()#排序,默认升序

print(lst) #[1, 2, 5, 6, 8]

lst.sort(reverse=True) #排序,倒序

print(lst) #[8, 6, 5, 2, 1]

lst= ["apple", "banana", "apple", "orange"]print(lst) #['apple', 'banana', 'apple', 'orange']

lst.reverse() #倒序

print(lst) #['orange', 'apple', 'banana', 'apple']

[1, 2, 5, 6, 8]

[8, 6, 5, 2, 1]

['apple', 'banana', 'apple', 'orange']

['orange', 'apple', 'banana', 'apple']

'''9、列表的长度len()'''lst= ["apple", "banana", "orange"]

l=len(lst)print(l) #3

3

'''10、列表循环的时候不能删除'''lst= ["apple", "pear", "peach", "pineapple", "banana"]for item inlst:if item.startswith("p"):

lst.remove(item)print(lst) #['apple', 'peach', 'banana']

['apple', 'peach', 'banana']

'''为什么会这样呢?原因是:当删除掉第一个元素之后,后面的元素就向前移动了一次,而for循环还要向后走一次。完美错过了"pear"这

个元素。我们需要把要删除的内容先保存在一个新列表中,然后循环这个新列表,去删除原来的数据列表。

正确的做法'''lst= ["apple", "pear", "peach", "pineapple", "banana"]

new_lst=[]for item inlst:if item.startswith("p"):

new_lst.append(item)for item innew_lst:

lst.remove(item)print(lst) #['apple', 'banana']

['apple', 'banana']

'''也可以这样'''lst= ["apple", "pear", "peach", "pineapple", "banana"]

lst_temp=lst[:]for item inlst_temp:if item.startswith("p"):

lst.remove(item)print(lst) #['apple', 'banana']

['apple', 'banana']

'''结论:python中的列表和字典在循环的时候,不能删除自身中的元素,列表虽然不报错,但是删不干净。解决方案都一样,把要删除的内

容保存在一个新列表中,循环新列表,删除老列表。'''

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值