011 Python初学笔记--列表的常用操作符

1.比较操作:与字符串的比较差不多,先比较第一个元素的大小,若相等,则继续往下比较

>>> list1=[123,'Jasper']
>>> list2=[123,'Jasper',321]
>>> list1<list2
True

2.比较操作符与逻辑操作符的使用:

>>> a=[123];b=[123,234];c=[123]
>>> a<b and a==c
True

3.连接操作符:我们知道字符串的连接可以用‘+’,列表的连接同样可以用‘+’,但是‘+’的两端必须都是列表类型

>>> a1=[123,'哈哈'];a2=['Swan']
>>> a1+a2
[123, '哈哈', 'Swan']
>>> a1+'小樱'
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    a1+'小樱'
TypeError: can only concatenate list (not "str") to list
>>> a1+['小樱']
[123, '哈哈', '小樱']

注:‘+’用于列表相当于列表的extend()方法,都是用一个列表扩展另一个列表;+不能实现向列表中添加新的元素,像列表中添加新的元素有append()方法和insert()方法。扩展列表最好用列表的函数,不要用‘+’。

4.重复操作符:将列表内的元素重复n次

>>> a=[123, '哈哈', 'Swan']
>>> a*=3
>>> a
[123, '哈哈', 'Swan', 123, '哈哈', 'Swan', 123, '哈哈', 'Swan']

5.成员关系操作符:判断元素是否在列表中,in,not in;判断一个元素是否在列表中的列表内:key in list[index]:

>>> a=['Jasper','Kimi',['neinei',123]]
>>> 'Kimi' in a
True

>>> 233 not in a
True

>>> 123 in a
False
>>> 123 in a[2]
True

>>> a[2][1]   #访问列表中的列表的元素,相当于C语言的二维数组
123
>>> a[1][0]
'K'

6.列表的几个内置函数:查看列表的内置函数:dir(list),查看python的内置函数:dir(__builtins__)
(1)count(key):计算参数在列表中出现的次数
(2)index(key):返回参数key在列表中第一次出现的位置编号
(3)index(key,start,stop):返回参数key在列表 [start,stop) 范围内第一次出现的位置编号
(4)reverse():将整个列表反转
(5)sort():将列表内的元素按从小到大的顺序排序
(6)sort(reverse=True):将列表内的元素按有大到小的顺序排序
(7)list2=list1[:]方法与list3=list1方法的不同
(8)copy():列表拷贝
(9)clear():清空列表,列表还存在,与del方法不同;del list 是删除列表,列表不存在了

>>> a=['Jasper','Kimi','neinei',123]
>>> a*=3
>>> a
['Jasper', 'Kimi', 'neinei', 123, 'Jasper', 'Kimi', 'neinei', 123, 'Jasper', 'Kimi', 'neinei', 123]

>>> #count(key):计算参数在列表中出现的次数
>>> a.count('Jasper')
3

>>> #index(key):返回参数key在列表中第一次出现的位置编号
>>> a.index('Kimi')
1

>>> #index(key,start,stop):返回参数key在列表 [start,stop) 范围内第一次出现的位置编号
>>> a.index('Kimi',2,6)
5
>>> a.index('Kimi',1,6)
1
>>> a.index('Kimi',3,5)      #范围[3,5),不包含5
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    a.index('Kimi',3,5)
ValueError: 'Kimi' is not in list

>>> #reverse():将整个列表反转
>>> list1=['Jasper','Kimi','neinei',123]
>>> list1.reverse()
>>> list1
[123, 'neinei', 'Kimi', 'Jasper']
 
>>> #sort():将列表内的元素按从小到大的顺序排序
>>> list2=[2,6,3,8,4]
>>> list2.sort()
>>> list2
[2, 3, 4, 6, 8]

>>> #sort(reverse=True):将列表内的元素按有大到小的顺序排序
>>> list3=[2,6,4,3,9,0]
>>> list3.sort(reverse=True)
>>> list3
[9, 6, 4, 3, 2, 0]
 
>>> #list2=list1[:]方法与list3=list1方法的不同
>>> a1=[3,4,2,1,0]
>>> a2=a1[:];a3=a1
>>> a2;a3
[3, 4, 2, 1, 0]
[3, 4, 2, 1, 0]
>>> a1.sort()
>>> a1
[0, 1, 2, 3, 4]
>>> a2;a3
[3, 4, 2, 1, 0]
[0, 1, 2, 3, 4]
 
>>> #copy():列表拷贝
>>> a=[1,2,3,4]
>>> b=a.copy()
>>> b
[1, 2, 3, 4]

>>> #clear():清空列表
>>> a.clear()
>>> a
[]

>>> #删除列表中的元素
>>> c=[0,1,2,3]
>>> del c[0]
>>> c
[1, 2, 3]
>>> #删除列表
>>> del c
>>> c
Traceback (most recent call last):
  File "<pyshell#51>", line 1, in <module>
    c
NameError: name 'c' is not defined

注:

①用sort(reverse=True)对列表逆序排序,相当于先将列表元素顺序排序,再将列表内的元素反转(先sort(),再reverse())。

②a2=a1[:]是将a1重新拷贝了一份,a2和a1指向不同的存储空间;a3=a1是给a1重新取了一个名字,a3和a1指向同一片存储空间,a3就是a1,a1也是a3

7.列表推导:列表推导也叫列表解析,可以用来动态的创建列表,语法:[关于a表达式 for a in B ]

>>> [i*i for i in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

上述代码分别打印了0-9各个数的平方,还将其放在列表里。以上代码可解析为:

>>> list1=[]
>>> for i in range(10):
	list1.append(i**2)

>>> list1
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

练习:

1.将list1中的‘我爱你’该为‘谢谢你’,将list2中的‘我爱你’和‘谢谢你’改成‘知道了’

>>> list1=[1,[2,3,['我爱你']],4,5,6]
>>> list1[1][2][0]='谢谢你'          #修改在列表中的列表内的元素
>>> list1
[1, [2, 3, ['谢谢你']], 4, 5, 6]

>>> list2=[1,2,3,['我爱你','谢谢你'],2]
>>> list2[3]=['知道了']              #修改列表内的列表元素
>>> list2
[1, 2, 3, ['知道了'], 2]
>>> 

2.扩展列表中的列表

>>> list3=['A','B',[1],'C']
>>> list3[2].extend([2,3])
>>> list3
['A', 'B', [1, 2, 3], 'C']

3.在shell窗口运行下面式子,并尝试换一种写法得到运行结果:>>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]

>>> list1=[(x,y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
>>> list1
[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)]
list1=[]
for x in range(10):
    for y in range(10):
        if x%2==0:
            if y%2!=0:
                list1.append((x,y))
print(list1)

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值