美文网首页
python——列表

python——列表

作者: ELLENXX | 来源:发表于2019-06-30 22:03 被阅读0次

列表就像一个数组,但是里面放的元素类型可以有很多种

menber=[1,'爱我中华','love',['这里还可以放','一个']]

向列表里面添加

append()

member=['小明',"喜欢","唱"]
member.append('跳')
for each in member:
    print(each,end=' ')

输出:小明 喜欢 唱 跳

member=['小明',"喜欢","唱"]
member.append('跳','rap')
for each in member:
    print(each,end=' ')
image.png

这里报错说append()只能放一个而这里却给了两个,所以要报错
append()里面只能放一个参数
如果我就想放两个及以上呢?那就需要extend()了

extend()

member=['小明',"喜欢","唱"]
member.extend('跳','rap')
for each in member:
    print(each,end=' ')
输出: image.png

其实这样的写法是不对的,extend的意思是扩展,这里应该是用一个列表去扩展另一个列表

member=['小明',"喜欢","唱"]
member.extend(['跳','rap'])
for each in member:
    print(each,end=' ')

输出:小明 喜欢 唱 跳 rap

列表长度

len()

语法:
len(列表名)

member=['小明',"喜欢","唱"]
print(len(member))

输出:3

在指定位置插入元素

insert(指定位置,插入元素)

member=['小明',"喜欢","唱"]
member.insert(0,'这个')
for each in member:
    print(each,end=' ')

输出:这个 小明 喜欢 唱
列表索引值从0开始

交换列表元素

member=['小明',"喜欢","唱","跳"]
temp=member[2]
member[2]=member[3]
member[3]=temp
for i in member:
    print(i,end=" ")

输出:小明 喜欢 跳 唱

从列表里删除元素

remove()

member=['小明',"喜欢","唱","跳"]
member.remove('跳')
for i in member:
    print(i,end=" ")

输出:小明 喜欢 唱

member=['小明',"喜欢","唱","跳"]
member.remove('rap')
for i in member:
    print(i,end=" ")

结果:


image.png

del

member=['小明',"喜欢","唱","跳"]
del member[2]
for i in member:
    print(i,end=" ")

输出:小明 喜欢 跳

pop

python的列表实际上是利用栈这种数据结构存储,所以可以利用pop来删除

member=['小明',"喜欢","唱","跳"]
it=member.pop()
print(it)
for i in member:
    print(i,end=" ")

结果:

小明 喜欢 唱
pop()会返回并删除栈顶元素

member=['小明',"喜欢","唱","跳"]
it=member.pop(1)
print(it)
for i in member:
    print(i,end=" ")

结果:
喜欢
小明 唱 跳
pop还可以指定删除

列表分片

member=['小明',"喜欢","唱","跳",'rap','篮球']
print(member[1:3])
for i in member:
    print(i,end=" ")

输出:
['喜欢', '唱']
小明 喜欢 唱 跳 rap 篮球
这里分片从1开始到2结束,不包括3,这是一个拷贝,不会影响原列表

其他用法:

member=['小明',"喜欢","唱","跳",'rap','篮球']
print(member[:3])
print(member[3:])
print(member[:])

输出:
['小明', '喜欢', '唱']
['跳', 'rap', '篮球']
['小明', '喜欢', '唱', '跳', 'rap', '篮球']

列表的常用操作符

比较操作符

list1=[123]
list2=[456]
print(list1>list2)

输出:False

list1=[123,456]
list2=[456,123]
print(list1>list2)

输出:False
列表只会比较第一个元素,然后返回

逻辑操作符

list1=[123,456]
list2=[456,123]
list3=[123,456]
print((list1<list2) and (list1==list3))

输出:True

连接操作符

list1=[123,456]
list2=[456,123]
list3=[123,456]
list4=list1+list2
for i in list4:
    print(i,end=" ")

输出:123 456 456 123
不可以这样写:

list4=list1+"小明"

这样写会报错,拼接是同样的类型,列表可以和列表拼接,但是不能列表和字符或者数字直接拼接

重复操作符

list1=[123,456]
list1*=3
for i in list1:
print(i,end=" ")
输出:
123 456 123 456 123 456

成员关系操作符

list1=[123,456]
print(123 in list1)
print(789 in list1)
print(789 not in list1)

输出:
True
False
True
如果在列表里面还有一个列表

list2=[123,[111,"哈哈哈"],456]
print(111 in list2)

输出:False
这样只能访问到第一层,第二层没有访问到
如果想要访问到第二层里面的元素怎么办呢?

list2=[123,[111,"哈哈哈"],456]
print("哈哈哈" in list2[1])

输出True
对于list2这样的列表,想要访问到列表里面的列表,可以用二维数组的方式

list2=[123,[111,"哈哈哈"],456]
print(list2[1][1])

输出:哈哈哈

列表类型的内置函数

print(dir(list))
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__','__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__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

计算元素在列表中出现的次数

list1=[123,456]
list1*=5
print(list1.count(123))

输出:5

index

会返回参数在列表中的位置

list1=[11,21,34,56,65,34,45]
print(list1.index(34))
print(list1.index(34,3,6))

输出:
2
5

reverse

逆转

list1=[11,21,34,56,65,34,45]
list1.reverse()
for i in list1:
    print(i,end=" ")

输出:45 34 65 56 34 21 11

sort

排序

list1=[11,21,34,56,65,34,45]
list1.sort()
for i in list1:
    print(i,end=" ")

输出:11 21 34 34 45 56 65
sort()默认从小到大排序

如果想要从大到小排序

list1=[11,21,34,56,65,34,45]
list1.sort(reverse=True)
for i in list1:
    print(i,end=" ")

输出:65 56 45 34 34 21 11

列表分片拷贝和等于的区别

list1=[6,5,4,3,2,1]
list2=list1[:]
list3=list1

上面的list1,list2,list3内容都是一样的,但是list2和list3的指向是不同的

list1=[6,5,4,3,2,1]
list2=list1[:]
list3=list1
list1.sort()

list1:1 2 3 4 5 6
list2:6 5 4 3 2 1
list3:1 2 3 4 5 6
可以看见,虽然只改了list1,但是list3也发生了改变,而list2没变,这是因为
list2=list1[:]是list2从list1那里拷贝出来的一份新的列表,list1和2是不同的,而list3是直接指向了list1,list1和list3是同一个列表

相关文章

网友评论

      本文标题:python——列表

      本文链接:https://www.haomeiwen.com/subject/pfbbcctx.html