(python)列表

列表是最常用的Python数据类型。

列表的数据项可以是不相同的类型。

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

list1=['first',2,(3,),{'name':'monicx'}]

列表的内置函数:


主要操作:

1、按索引取值。

2、切片(start,end,step)

    切片切出来的是子列表。

>>> S=['monicx1','monicx2','monicx3']
>>> S[0:2:1]
['monicx1', 'monicx2']

3、len()长度

长度就是列表元素的个数

4、成员运算in和not in

  就是判断某一个元素是不是在这个列表中

5、追加append()和插入insert()

追加是在列表的未尾加入一个元素

插入是在列表某个元素前插入,给出具体的索引,没有索引会报错。

>>> list1=['first',2,(3,),{'name':'monicx'}]
>>> list1.append('zuijia')
>>> list1.insert(3,'charu')
>>> list1
['first', 2, (3,), 'charu', {'name': 'monicx'}, 'zuijia']

6、删除

pop()方法默认删除末尾的元素,它是取走一个值,而remov()它是单纯的删除。

>>> list2=['monicx','miaoqinian']
>>> print(list2.pop())
miaoqinian
>>> list2
['monicx']
>>>
>>> list2=['monicx','miaoqinian']
>>> print(list2.remove('miaoqinian'))
None
>>> list2
['monicx']
>>>

7、循环

list3=['monicx1','monicx2','monicx3','……']
#依赖索引:
# 方式一
i=0
while i<len(list3):
    print(list3[i])
    i+=1
# 方式二
for i in range(len(list3)):
    print(list3[i])

# 不依赖索引:
for i in list3:
    print(i)

接着需要撑握:

1、count()

>>> list4=['a','a','b']
>>> print(list4.count('a'))
2
2、extend()和append()

extend()将一个列表中的每个元素都加入到一个列表中。

而append()是将一个列表当成一个元素加入到列表中。

>>> list5=['a','b','c','d','e']
>>> list6=['f','g','h']
>>> list5.extend(list6)
>>> list5
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> list5=['a','b','c','d','e']
>>> list6=['f','g','h']
>>> list5.append(list6)
>>> list5
['a', 'b', 'c', 'd', 'e', ['f', 'g', 'h']]
>>>
3、index()
index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
>>> list7=['a','b','c','a','e','a']
>>> print(list7.index('a',2))
3
>>> print(list7.index('a'))
0
>>> print(list7.index('g'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'g' is not in list

4、reverse()
该方法没有返回值,但是会对列表的元素进行反向排序。

5、sort()
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

大前提:只能同类型直接比较大小,对于有索引值直接的比较是按照位置一一对应进。

6、clear()

清空一个列表

>>> list8=['a','b','c','a','e','a']
>>> list8.clear()
>>> list8
[]
>>>

7、copy()

深拷贝一个列表的数据到另一个数组:

>>> list9=['a','b','c','a','e','a']
>>> list10=list9.copy()
>>> list10
['a', 'b', 'c', 'a', 'e', 'a']
>>> list10[1]='monicx'
>>> list9
['a', 'b', 'c', 'a', 'e', 'a']
>>> list10
['a', 'monicx', 'c', 'a', 'e', 'a']

引伸1:

"""
生成如下列表:
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]
"""


# 方式一

list1 = []
for i in range(4):
    tmp = []
    for j in range(5):
        tmp.append(j * i)
    list1.append(tmp)

print(list1)


# 方式二
ret = [[i * j  for j in range(5)] for i in range(4)]
print(ret)

引伸2:

def extend_list(v, li=[]):
    li.append(v)
    return li

list1 = extend_list(10)
print(list1)
list2 = extend_list(123, [])
list3 = extend_list('a')

print(list1)  # [10, 'a']
print(list2)  # [123, ]
print(list3)  # [10, 'a']

print(list1 is list3)  # True

# # 第二题:问以下代码的输出结果是什么?
list1 = ["a", "b", "c", "d", "e"]
print(list1[10:])  # []


# # 第三题:如何打乱一个有序的列表?
list4 = [11, 22, 33, 44, 55]
import random
random.shuffle(list4)
print(list4)
list4.sort()
print(list4)
# 快速复制一个列表
list5 = [11, 22, [33, [44, 55]]]
# list6 = list5
# print(list6)
# list5[2][1][0] = 444
# print(list6)
list7 = list5[:]
print(list7)
list5[2][1][0] = 444
print(list7)
print(id(list7), id(list5))

猜你喜欢

转载自blog.csdn.net/miaoqinian/article/details/80573387
今日推荐