Python-8 Python列表-一个打了激素的数组(3)

1、列表常用的操作符

● 比较操作符

>>> list1=[123]
>>> list2=[234]
>>> list2>list1
True
>>> 

>>> list1=[123,234]
>>> list2=[234,345]
>>> list1>list2
False
>>> 

当有多个元素默认是从第0个元素开始比较,也之比较第0个元素。


● 逻辑操作符

>>> list3=[123,234]
>>> (list1<list2) and (list1==list3)
True
>>> 

● 连接操作符

>>> list4=list1+list2
>>> list4
[123, 234, 234, 345]
>>> 
和extend()有相同之处。


>>> list1+123
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    list1+123
TypeError: can only concatenate list (not "int") to list
>>> 

直接在+后面添加元素是不可以的。


● 重复操作符

>>> list3
[123, 234]
>>> list3*3
[123, 234, 123, 234, 123, 234]
>>> 

>>> list3*=3
>>> list3
[123, 234, 123, 234, 123, 234]
>>> 
改变了list3的值。

● 成员关系操作符

in 、not in

>>> 123 in list3
True
>>> 'cisco' not in list3
True
>>> 'cisco' in list3
False
>>> 

>>> list5 = [123,['cisco','lenovo'],235]
>>> 'cisco' in list5
False
>>> 
cisco在列表中的列表,所以in、not in只能判断一个层次的成员关系。


>>> 'cisco' in list5[1]
True
>>> 
在Python中访问列表中列表的元素的方法和java中的二维数组类似,使用两个中括号。

>>> list5[1][1]
'lenovo'
>>> 


2、列表的小伙伴们

使用dir

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> 

● count()

>>> list3.count(123)
3
count()方法,返回元素在列表中的出现次数。

● index()

>>> list3.index(123)
0
>>> list3.index(123,3,6)
4
返回元素在列表中的索引值,

list3.index(123,3,6)的意思是:在列表的索引从3到6的范围内返回元素123的索引值。

● reverse()

>>> list3.reverse()
>>> list3
[234, 123, 234, 123, 234, 123]
是将列表反转。


● sort()

>>> list3.sort()
>>> list3
[123, 123, 123, 234, 234, 234]
>>> 
排序,默认的是从小到大排序。

如果从大到小的排序呢?

>>> list6=[1,4,2,3,9,6,8]
>>> list6.sort()
>>> list6
[1, 2, 3, 4, 6, 8, 9]

>>> list6.sort(reverse=True)
>>> list6
[9, 8, 6, 4, 3, 2, 1]
>>> 


3、关于分片“拷贝”概念的补充

>>> list6
[9, 8, 6, 4, 3, 2, 1]
>>> list7=list6[:]
>>> list7
[9, 8, 6, 4, 3, 2, 1]
>>> list8=list6
>>> list6.sort()
>>> list6
[1, 2, 3, 4, 6, 8, 9]
>>> list7
[9, 8, 6, 4, 3, 2, 1]
>>> list8
[1, 2, 3, 4, 6, 8, 9]
>>> 
使用等号(=)拷贝实际上只是将list8名贴到原来的内存存储地址上,并没有真正的拷贝。而分片的拷贝是在内存中重新分配一块存储空间来存储数据。
也就是说list8和list6实际上是指向内存中的同一个地址,而list7是指向了新的内存地址。



:列表推导式(List comprehensions)也叫列表解析,灵感取自函数式编程语言Haskell。是一个非常有用和灵活的工具,可以用来动态创建列表,语法:

[有关A的表达式 for A in B]

例如:

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




思考:

>>> name='2.cisco'
>>> name[:2]
'2.'
>>> name[2:]
'cisco'
>>> for i in name:
	print(i)

	
2
.
c
i
s
c
o
>>> len(name)
7
>>> 





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值