python6 列表

python6 列表

容器类型:

  • list 列表
  • tuple 元组
  • set 集合
  • dict 字典

list列表:

格式

空列表: moneys=[]
有内容列表: moneys = [100,80,60,10]

列表长度

len(moneys) 类似字符串

列表元素的添加

moneys = []  # 空列表
print(type(moneys))  # <class 'list'>
print(len(moneys))  # 0
	
moneys = [100, 80, 60, 10]
print(type(moneys))  # <class 'list'>
print(len(moneys))  # 4
	
names = []
names.append('张三1')
names.append('张三2')
names.append('张三3')
print(names)  # ['张三1', '张三2', '张三3']

特点

  1. 就打印来说: 先进先出 queue 队列
  2. 列表中是允许有重复元素
  3. 列表也有下标(类似字符串)
  4. 列表元素的循环遍历

打印

moneys = [50, 40, 100, 50, 70]
print(moneys)

支持下标

print(moneys[2])  # 100
print(moneys[-1])  # 70

使用切片

print(moneys[:2])  # [50, 50]
print(moneys[1:])  # [40, 100, 50, 70]
print(moneys[::-1])  # [70, 50, 100, 40, 50]
print(moneys[::-2])  # [70, 100, 50]

列表元素的便利

for i in moneys:
    print(i)
'''
50
40
100
50
70
'''

列表判断

判断列表中是否存在60元素
使用关键词:in 和 not in
格式:元素 in 列表 返回值是bool类型

if 60 not in moneys:  
    print('不存在')
else:
    print('存在')

if 60 in moneys:
    print('存在')
else:
    print('不存在')

增删改查

增加

  • append 在末尾添加元素
  • insert 在指定位置插入元素
  • extend 合并两个列表
names = []

names.append('托儿索')
names.append('儿童劫')
names.append('小学僧')
print(names)  # ['托儿索', '儿童劫', '小学僧']

names.insert(0, '望远烬')
print(names)  # ['望远烬', '托儿索', '儿童劫', '小学僧']

names.insert(2, '喜之螂')
print(names)  # ['望远烬', '托儿索', '喜之螂', '儿童劫', '小学僧']

names1 = ['小学生之手', '尿不狮']
names.extend(names1)
print(names)  # ['望远烬', '托儿索', '喜之螂', '儿童劫', '小学僧', '小学生之手', '尿不狮']

删除

  • pop(): 默认删除末尾元素

  • pop(index): 指定下标位置删除

  • remove(名字): 根据元素名称删除,如果不存在则报错

  • clear(): 清空列表中的所有元素

  • 可以使用系统关键字实现删除: del list[index]

print(names)  # ['望远烬', '托儿索', '喜之螂', '儿童劫', '小学僧', '小学生之手', '尿不狮']

names.pop()
print(names)  # ['望远烬', '托儿索', '喜之螂', '儿童劫', '小学僧', '小学生之手']

names.pop(1)
print(names)  # ['望远烬', '喜之螂', '儿童劫', '小学僧', '小学生之手']

names.remove('小学僧')
print(names)  # ['望远烬', '喜之螂', '儿童劫', '小学生之手']
# 里面的元素容易引起异常 只要元素不在列表中则报错
names.remove('尿不狮')  # ValueError: list.remove(x): x not in list

del names[3]
print(names)  # ['望远烬', '喜之螂', '儿童劫']

names.clear()
print(names)  # []

修改

列表[index] = 新值

numbers = [4, 6, 9, 1, 5]
numbers[0] = 5  # 将新值替换原来的旧值
print(numbers)  # [5, 6, 9, 1, 5]

查找

i = 列表.index(要查找的元素) 返回值是此元素的位置

if 9 in numbers:
    # 是否存在一个方法能定义元素的位置
    index = numbers.index(9)
    print(index)  # 2

其它方法

  • count
list1 = [6, 1, 2, 9, 4, 5, 8, 5, 3, 6, 3]
# 统计列表中元素的个数
num = list1.count(3)
print(num)  # 2
  • sort
list1 = [6, 1, 2, 9, 4, 5, 8, 5, 3, 6, 3]
list1.sort()  # 默认升序
print(list1)  # [1, 2, 3, 3, 4, 5, 5, 6, 6, 8, 9]

list1.sort(reverse=True)  # 排序:降序
print(list1)  # [9, 8, 6, 6, 5, 5, 4, 3, 3, 2, 1]

系统函数

  • sum()
  • max()
  • min()
  • sorted()
# 求和
list1 = [37, 61, 99, 43, 62, 29, 2, 100, 85, 16, 65, 76, 83, 82, 35]
result = sum(list1)
print(result)  # 875

# 求平均值
avg = sum(list1) / len(list1)
print(avg)  # 58.333333333333336

# 求最大值
maxnum = max(list1)
print(maxnum)  # 100

# 求最小
minnum = min(list1)
print(minnum)  # 2

# 排序
result = sorted(list1)
print(result)  # [2, 16, 29, 35, 37, 43, 61, 62, 65, 76, 82, 83, 85, 99, 100]

result = sorted(list1, reverse=True)
print(result)  # [100, 99, 85, 83, 82, 76, 65, 62, 61, 43, 37, 35, 29, 16, 2]

print(list1)  # [37, 61, 99, 43, 62, 29, 2, 100, 85, 16, 65, 76, 83, 82, 35]
list1.sort()
print(list1)  # [2, 16, 29, 35, 37, 43, 61, 62, 65, 76, 82, 83, 85, 99, 100]

sorted(list)与list.sort()区别:

  • sorted(list)返回一个排序好的列表,原列表不变
  • list.sort()直接修改原列表,返回None

嵌套的列表

list1 = []
list1.append('admin')
list1.append(100)
list1.append(99.9)
list1.append(True)
print(list1)  # ['admin', 100, 99.9, True]

# list类型

list1.append([1, 2, 3, 4])
print(list1)  # ['admin', 100, 99.9, True, [1, 2, 3, 4]]

list2 = [[1, 2, 3], [2, 3, 4], [1, 1, 1, 6], [5, 5, 5]]
print(len(list2))  # 4

print(list2[2])  # [1, 1, 1, 6]
print(len(list2[2]))  # 4

# 求list2中所有数字的累加和
sum = 0
for i in list2:  # 因为是双层的列表  i 就是一个列表
    for j in i:
        sum += j
print('和:', sum)  # 和: 39
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章