列表list

列表list

列表的特性

  1. 任意对象的有序集合
  2. 可通过下标索引访问元素
  3. 支持原位改变,属于可变序列
  4. 可变长度

列表的常见操作

#判断列表长度——len()
len([1,2,3])
3

#多个列表相加即可得到一个新的列表
[1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]

#list()函数
s='apple'
l=list(s)
l
['a', 'p', 'p', 'l', 'e']

#查看某一个元素是否在列表里
l=['a', 'p', 'p', 'l', 'e']
'a' in l
True

#列表的遍历——for循环
l=['a','p','p','l','e']
for x in l:
	print(x,end='')
...
apple

l=[1,2,3,6,9]
#先声明一个空列表
result=[]
for x in l:
#遍历l里面的每一个元素后乘以三次方 然后追加到result这个列表里面去
    result.append(x**3)
    
result
[1, 8, 27, 216, 729]


#列表的推导
l=[1,2,3,6,9]
res2=[x**2 for x in l]
#上述代码表示res2这个列表里面的元素是x的平方 而x则来自于列表l里的每一个元素
res2
[1, 4, 9, 36, 81]

[s*3 for s in 'python']
#上述代码表示:首先外侧的[]表示返回的是列表 列表里的元素是字符s打印三次 而字符s来自于字符串'python' 即把'python'里面的每一个字符都拿出来乘以3(即打印三次) 
['ppp', 'yyy', 'ttt', 'hhh', 'ooo', 'nnn']


#列表的乘法——把列表里的元素重复三次
[1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]


#列表的追加——列表.append(一个新元素)
l=[1,2,3]
l.append(4)
l
[1, 2, 3, 4]
#注意 append()只能追加一个元素
l.append(9,10)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
#列表支持原位改变 所以l.append()以后l就会发生永久改变 不需要像字符串那样将l.append()赋值给l

#列表的扩展——列表.extend(新列表)
l
[1, 2, 3, 4]
l.extend([9,8,5])
l
[1, 2, 3, 4, 9, 8, 5]

#列表的排序—— 列表.sort()/列表.reverse() (调用了此方法后原有列表本身就被永久修改了)
l
[1, 2, 3, 4, 9, 8, 5]
l.sort()
l
[1, 2, 3, 4, 5, 8, 9]
l.reverse()
l
[9, 8, 5, 4, 3, 2, 1]
#但如果用全局函数sorted()它只返回一个排好序的列表 而不改变原来的列表
l
[9, 8, 5, 4, 3, 2, 1]
sorted(l)
[1, 2, 3, 4, 5, 8, 9]
l
[9, 8, 5, 4, 3, 2, 1]



#删除列表里的某个元素
#方法一:列表.pop(下标索引)——用于移除列表中的一个元素(如果括号内不写参数则默认是-1 即最后一个元素)且返回该元素的值
list=[1,2,3,4]
list.pop(3)
4
list
[1, 2, 3]
list.pop()
3
list
[1, 2]
#方法二:使用全局函数del()
list=[1,2,3,4,5]
del(list[2])
list
[1, 2, 4, 5]


#找出列表中某一个元素的下标索引——列表.index()
l=['a','p','p','l','e']
l.index('a')
0

#统计列表中某个元素的个数
l=[1,1,1,1,1,2,3,4,5]
l.count(1)
5


# “拷贝列表副本”
l1=[1,2,3,4,5]
l2=l1
#此时l2和l1指向的是同一个对象
l2
[1, 2, 3, 4, 5]
#当我们对l1作出修改后,由于l1所指向的对象已经变了,而l2也指向这个对象,因此l2也会随之改变
l1[1]=999
l1
[1, 999, 3, 4, 5]
l2
[1, 999, 3, 4, 5]
#如果我们不想l2随之改变
#方法一:把l1的所有元素复制拷贝赋给l2
l1=[1,2,3,4,5]
l2=l1[:]
l2
[1, 2, 3, 4, 5]
#此时l2看起来和l1一样 但对l1作出修改后 l1本身会变 但不会对l2有影响l2不会改变
l1[1]=999
l1
[1, 999, 3, 4, 5]
l2
[1, 2, 3, 4, 5]
#方法二:用列表.copy()
l1=[1,2,3,4]
#调用copy方法 把l1复制传递给l2 此时对l1的修改不会影响l2
l2=l1.copy()
l2
[1, 2, 3, 4]
l1[0]=999
l1
[999, 2, 3, 4]
l2
[1, 2, 3, 4]


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值