Python 列表

列表

崇高的理想就象生长在高山上的鲜花。如果要搞下它,勤奋才能是攀登的绳索 –佚名

列表的概念

  • 列表是由一系列按照特定顺序排列的元素组成.你可以创建任何元素,其中的元素之间没有任何关系。简单来说列表就是一个容器

arr = ["1","2","hello"]
print(arr)
------
# 最后的结果
# ['1', '2', 'hello']

访问列表的元素

  • 可以通过序号来访问列表的元素,序号从 0 开始

arr = [1,2,'haha']

print(arr[2])

# 结果haha
  • 要是从后面选择的话就是负数,负数从-1 开始

arr = [1,2,'haha']

print(arr[-1])

# 结果  haha

index()方法在列表中查找值


arr = ['11','22','33']

print(arr.index('22'))

# 结果 1

查看元素是否在列表中

  • 元素 in list

letters = ['a','b','c','d']

if 'a' in letters:
   print('存在')

在列表中增删改

列表增加

  • 在列表末尾添加元素必须 append

arr = ["第一个","第二个","第三个"]
arr.append("第四个")
print(arr)
-------
# 最后结果
# ['第一个', '第二个', '第三个', '第四个']
  • 在列表中任何位置增加新元素,它在元素的前面加


arr = ["第一个", "第三个", "第四个"]
arr.insert(1, "第二个")
print(arr)

-------
# 最后结果
# ['第一个', '第二个', '第三个', '第四个']
  • 在列表末尾追加另一个列表的所有元素

arr = ['a', 'b', 'c']
arr2 = ['d', 'e', 'f']
arr.extend(arr2)
print(arr)

# 它改变的是原数组

列表删除

  • 使用 pop()来删除元素,不加序号只能删除列表最后的元素

arr = ['第一个', '第二个', '第三个', '第四个']
result = arr.pop()
print(arr)
print(result)
----
# 最后结果
# ['第一个', '第二个', '第三个']
# 第四个
  • 加了序号,就能删除任意位置
arr = ['第一个', '第二个', '第三个', '第四个']
result = arr.pop(2)
print(arr)
print(result)
----
# 最后结果
# ['第一个', '第二个', '第四个']
# 第三个
  • 根据值删除元素,remove 他接受一个参数,要删除的值找到第一个匹配的值


arr = ['第一个', '第二个', '第三个']
arr.remove("第二个")
print(arr)
----
# 最后结果
# ['第一个', '第三个']
  • 要是内部有相同的数据,他只删除掉第一个


arr = ['第一个', '第二个', '第三个', "第二个"]
arr.remove("第二个")
print(arr)
----
# 最后结果
# ['第一个', '第三个',"第二个"]
  • 清空整个列表

arr = ['a','b','c','d']
arr.clean()

# 结果 清空整个数组

列表排序

  • 正序 sroted 由小到大
arr = ['d', 'c', 'a', "b"]
arr.sort()
print(arr)
----------
# 最后结果
# [a,b,c,d]
  • 反序 要是想反序就只能 reverse=True 由大到小

arr = ['d', 'c', 'a', "b"]
arr.sort(reverse=True)
print(arr)
----
# 最后结果
# ['d', 'c', 'b', 'a']
  • 临时排序不改变原数组 sorted


arr = ['d', 'c', 'a', "b"]
arr2 = sorted(arr)
print(arr)
print(arr2)

-------
# 最后结果
# ['d', 'c', 'a', 'b']
# ['a', 'b', 'c', 'd']
  • 反向排序

arr = ['d', 'c', 'a', "b"]
arr2 = sorted(arr, reverse=True)
print(arr)
print(arr2)
------
最后结果
['d', 'c', 'a', 'b']
['d', 'c', 'b', 'a']
  • 反转顺序 reverse


arr = ['d', 'c', 'a', "b"]
arr.reverse()
print(arr)

----
# 最后结果
# ["b","a","c","d"]

列表的个数

  • len 个数

arr = [1,2,3]
print(len(arr))

# 结果3

使用 list() 和 tuple() 转换类型

  • tuple 将类型变成元祖

print(tuple('hello'))

# 结果
# ('h','e','l','l','0')
  • list 将类型变成列表

print(list('hello'))

# 结果
# ['h','e','l','l','0']

列表拷贝 copy 模块

  • 列表里面没有对象,或者列表之类的,就是简单的


import copy

result = ['A', 'B', 'C', 'D']

cheese = copy.copy(result)

cheese[1] = '42'

print(cheese)
print(result)

# 结果
# ['A', '42', 'C', 'D']
# ['A', 'B', 'C', 'D']

  • 列表里面由复杂的数组,对象等等,必须使用 deepcopy


import copy

result = ['A', [2, 3, 4], 'C', 'D']

cheese = copy.deepcopy(result)

cheese[1] = [5, 6, 7]

print(cheese)
print(result)

# 结果
# ['A', [5, 6, 7], 'C', 'D']
# ['A', [2, 3, 4], 'C', 'D']

列表的循环

  • 注意前面的空格

arr = ['d','c','a','b']

for content in arr:
    print(content)

# 结果
# d c a b
  • 循环语句内部可以嵌套


arr = ["小明第一名", '小红第二名', '小黄第三名', '小黑第四名']
for index in arr:
    print(index+"\r\n")
    print("----------")

  • 也可以通过 enumerate 循环出来序号和内部的值

arr = ['小明','小红','小黑']
for index,content in enumerate(arr):
    print(content)
    print(index)

列表的截取

截取后是一个新的数组

  • 截取[开头:结束] 包前不包后

arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[1:3])

#最后的结果
# ['第二个', '第三个']
  • [:结束] 没指定开头的话他会从头部开始截取


arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[:4])

# 最后的结果
# ['第一个', '第二个', '第三个', '第四个']
  • [2:] 没指定结尾的话,他从截取的位置到最后

arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[2:])

# 最后的结果

# ['第三个', '第四个', '第五个']
  • [-3:] 这个就表示截取从倒数第三位到最后

arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[-3:])
---------
# 最后结果
# ['第三个', '第四个', '第五个']
  • 复制列表


arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]

arr2 = arr[:]

print(arr2)

-----------
# 最后的结果
# ['第一个', '第二个', '第三个', '第四个', '第五个']

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录