Python 列表总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xyy1028/article/details/84963721

python列表下可以包含多种不同的类型

MyList = [2, 5, 8, "呵呵", [1, 2, 3], {"a": 123, "b": "ddd"}, (2, 5, 0)]

一.向列表中添加元素

1.append() 只能一次添加一个元素,并且只能在列表最后添加

a = [2, 5, 8, "呵呵", [1, 2, 3], {"a": 123, "b": "ddd"}, (2, 5, 0)]
a.append("嘿嘿")
# 将列表中的中文以正确的格式打印
print str(a).decode('string_escape')
# 输出: [2, 5, 8, '呵呵', [1, 2, 3], {'a': 123, 'b': 'ddd'}, (2, 5, 0), '嘿嘿']

2.extend() 可以一次添加多个元素,只能添加在列表的最后,且有序

b = [1, 3, 9, 5]
c = [9, 6, 4]
b.extend(c)
print b
# 输出:[1, 3, 9, 5, 9, 6, 4]

3. insert() 在列表的指定索引位置添加元素

d = ["a", "b", "c"]
# 在索引号1的位置上添加d
d.insert(1, "d")
print d
# 输出:['a', 'd', 'b', 'c']

二.删除列表元素

1. remove()移除列表中的特点元素,只删除第一次遇到的该元素,若有多个元素,不能同时删除

a = ["a", "b", "c", "a"]
a.remove("a")
print a
# 输出: ['b', 'c', 'a']
a.remove("a")
print a
# 输出: ['b', 'c']

2. del m[n]删除列表中指定索引位置的元素,del是一种操作语句

b = ["a", "b", "c"]
del b[1]
print b
# 输出:['a', 'c']

3.pop() 将列表指定位置的元素返回,默认最后一个

c = ["a", "b", "c"]
h = c.pop()
print h
# 输出:c
print c
# 输出: ['a', 'b']

也可以指定位置

c = ["a", "b", "c"]
h = c.pop(0)
print h
# 输出:a
print c
# 输出: ['b', 'c']

三.查询指定位置元素

a = ["a", "b", "c"]
print a[1]
# 输出:b

四.分片

1.用一个冒号隔开两个索引值, 左边是开始位置, 右边是结束位置,返回的列表不包含结束位置上的元素

a = [0, 1, 2, 3, 4, 5, 6, 7]
print a[1:3]
# 输出:[1, 2]
#  冒号前为空,则从开始位置查找
print a[:3]
# 输出:[0, 1, 2]
#  冒号后为空,则直接查询到结束位置
print a[2:]
# 输出:[2, 3, 4, 5, 6, 7]
#  冒号前后均为空,则查找全部
print a[:]
# 输出:[0, 1, 2, 3, 4, 5, 6, 7]
# 利用负值进行访问,最后一个值的位置为-1,返回值不包含结束位置上的元素
a = [0, 1, 2, 3, 4, 5, 6, 7]
print a[-4:-2]
# 输出:[4, 5]

2.增加查找的步长

a = [0, 1, 2, 3, 4, 5, 6, 7]
# 从头开始,每两个步长查找一次
print a[::2]
# 输出:[0, 2, 4, 6]

步长为-1时,进行反转

a = [0, 1, 2, 3, 4, 5, 6, 7]
print a[::-1]
# 输出:[7, 6, 5, 4, 3, 2, 1, 0]

但只能对整个列表进行翻转


a = [0, 1, 2, 3, 4, 5, 6, 7]
print a[0:3:-1]
# 输出:[]

3.列表的复制,与copy方法相同,也叫深拷贝

a = [0, 1, 2, 3, 4, 5, 6, 7]
b = a[:]
print b
# 输出:[0, 1, 2, 3, 4, 5, 6, 7]

不要采取直接赋值的形式进行复制,对a的操作会影响到c,直接赋值也叫浅拷贝

a = [0, 1, 2, 3, 4, 5, 6, 7]
c = a
print c
a.pop()
print a
# 输出: [0, 1, 2, 3, 4, 5, 6]
print c
# 输出: [0, 1, 2, 3, 4, 5, 6]

五.列表的操作符操作

1."+":实现多个列表之间的拼接,且有序

a = [1, 2, 3]
b = [4, 5, 6]
print a + b
# 输出:[1, 2, 3, 4, 5, 6]

2."*":主要实现的是列表的复制和添加

a = [1, 2, 3]
print a*3
# 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]

六.列表常用函数

1.len():列表元素个数

a = [1, 2, 3]
print len(a)
# 输出: 3

2.max():返回列表元素最大值

a = [1, 2, 3]
print max(a)
# 输出: 3

3.min():返回列表元素最小值

a = [1, 2, 3]
print min(a)
# 输出: 1

4.list(seq):将元组转换为列表

a = (1, 2, 3)
print a
# 输出:(1, 2, 3)
b = list(a)
print b
# 输出:[1, 2, 3]

七.列表常用方法

1.list.count(obj):统计某个元素在列表中出现的次数

a = [1, 2, 3, 1, 2, 3, 1, 2, 3]
print a.count(1)
# 输出: 3

2.list.index(obj):从列表中找出某个值第一个匹配项的索引位置

a = [4, 5, 8, 7, 5]
print a.index(5)
# 输出: 1

3.list.reverse():反向列表中元素

a = [4, 5, 8, 7, 5]
a.reverse()
print a
# 输出: [5, 7, 8, 5, 4]

4.list.sort([func]):对原列表进行排序

4.1 默认升序

a = [4, 5, 8, 7, 5]
a.sort()
print a
# 输出: [4, 5, 5, 7, 8]

4.2 降序排序

a = [4, 5, 8, 7, 5]
a.sort(reverse=True)
print a
# 输出: [8, 7, 5, 5, 4]

4.3 指定第二个元素排序

# 获取列表的第二个元素
def second(elem):
    return elem[1]


a = [[2, 2], [3, 4], [4, 1], [1, 3]]
a.sort(key=second)
print a
# 输出: [(4, 1), (2, 2), (1, 3), (3, 4)]

拉姆达表达式形式

a = [[2, 2], [3, 4], [4, 1], [1, 3]]
a.sort(key=lambda elem: elem[1])
print a
# 输出:[[4, 1], [2, 2], [1, 3], [3, 4]]

八.列表遍历

1 普通遍历,效率最高,在不需要下标的情况下,优先选择此种方式

a = ["b", "a", "d", "c"]
for i in a:
    print i, a.index(i)

# 输出:
# b 0
# a 1
# d 2
# c 3

2 遍历循环下标的形式,range会直接将所有结果生成一个list对象

a = ["b", "a", "d", "c"]
for i in range(len(a)):
    print i, a[i]
    print a


# 输出:
# 0 b
# ['b', 'a', 'd', 'c']
# 1 a
# ['b', 'a', 'd', 'c']
# 2 d
# ['b', 'a', 'd', 'c']
# 3 c
# ['b', 'a', 'd', 'c']

3.遍历循环下标的形式,xrange不会直接生成一个list,而是一个生成器,会每次调用返回其中的一个值,因此,xrange的循环性能比range好,尤其是当列表返回很大的情况。但是需要返回是一个列表的话,可以使用range

a = ["b", "a", "d", "c"]
for i in xrange(len(a)):
    print i, a[i]
    print a


# 输出:
# ['b', 'a', 'd', 'c']
# 1 a
# ['b', 'a', 'd', 'c']
# 2 d
# ['b', 'a', 'd', 'c']
# 3 c
# ['b', 'a', 'd', 'c']

4.如需获取下标,优先选择此种方法

a = ["b", "a", "d", "c"]
for index, j in enumerate(a):
    print index, j
    print a



# 输出:
# ['b', 'a', 'd', 'c']
# 1 a
# ['b', 'a', 'd', 'c']
# 2 d
# ['b', 'a', 'd', 'c']
# 3 c
# ['b', 'a', 'd', 'c']

enumerate参数可以设置遍历起始序号,只是改变起始序号

a = ["b", "a", "d", "c"]
for index, i in enumerate(a, 2):
    print index, " ", i



# 输出:
# 2   b
# 3   a
# 4   d
# 5   c

猜你喜欢

转载自blog.csdn.net/xyy1028/article/details/84963721