Python之列表

1.1列表概述

  • 列表中的数据按顺序排列。
  • 列表有正序和倒叙两种索引。
  • 列表可存储任意类型数据,且允许重复。

1.2初始列表

#变量名=[元素1,元素2,....]
list = ['a' , 'b' , 'c' , 'd' , 1 , 2 , 3 , 4]
print(list)
list1 = []
print(list1)

1.3列表的取值

 

list = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']
print(list)
# 取值的语法: 变量 = 列表变量[索引值]
zhaoliu = list[3]
print(zhaoliu)
zhaoliu = list[-3]
print(zhaoliu)

# 范围取值: 列表变量 = 原列表变量[起始索引:结束索引]
# 在Python中列表范围取值是"左闭右开"
list1 = list[1: 4]
print(list1)
print(list1[-1])

# 列表的index函数用于获取指定元素的索引值
zhaoliu_index = list.index('赵六')
print(zhaoliu_index)

1.4列表的遍历

1.4.1使用for循环

name_list = ["zhangsan", "lisi", "wangwu"]
for name in name_list:
    print(name)

1.4.2使用while循环

name_list = ["zhangsan", "lisi", "wangwu"]
i = 0
name_len = len(name_list)
while i < name_len:
    print(name_list[i])
    i += 1

1.5列表的排序与排序

#列表的反转与排序
persons = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']
persons.reverse() #reverse方法用于反转列表
print(persons)

numbers = [28,32,14,12,53,42]
numbers.sort(reverse=True) #sort()用于排序,reverse=True代表降序排列
print(numbers)

  内置函数sorted,不会改变原有的列表数据,会生成一个新的有序数据

num = [6, 5, 3, 1, 2]
x = sorted(num)
print(x)  # [1, 2, 3, 5, 6]

1.6列表的新增

persons = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']
# 列表的追加
persons.append("杨九")
print(persons)
# 列表的插入
persons.insert(2 , '刘二')
print(persons)
persons.insert(len(persons) , '候大')
print(persons)

1.7列表的修改

# 列表的更新
persons[2] = '宋二'
print(persons)
# 列表范围取值是"左闭右开"
persons[3:5] = ['王五','李四']
print(persons)

1.8列表的删除

# 列表的删除操作
# 按元素内容删除,如果数据不在列表中,会报错
persons.remove('宋二')
print(persons)
# 按索引值删除元素,并且返回这个数据
persons.pop(4)
print(persons)
# 范围删除
persons[4:7] = []
print(persons)

1.9列表的查询

tanks = ['程咬金', '盾山', '程咬金']
print(tanks.index('盾山'))  # 1,如果元素不存在,会报错
print(tanks.count('程咬金'))  # 2

1.10列表的其他常用方法

1.10.1统计出现次数

# 其他常用方法
persons = ['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八']

#统计出现次数
cnt = persons.count('赵六')
print(cnt)

1.10.2追加操作

# 追加操作
# append将整个列表追加到末尾,extend则是将列表中的元素追加到原始列表末尾
persons = ['张三', '赵六']
persons.append(['杨九', '吴十'])  # ['张三', '赵六', ['杨九', '吴十']]
print(persons)
persons.extend(['杨九', '吴十'])  # ['张三', '赵六', ['杨九', '吴十'], '杨九', '吴十']
print(persons)

1.10.3in操作符

in(成员运算符) 运算符用于判断数据是否在列表中存在,存在返回True,不存在返回False。

persons.remove('张三')
b = '张三' in persons
print(b)

1.10.4复制列表

#copy 函数用于复制列表,这个新列表和原有的里列表内容一样,但是指向不同的内存空间
persons1 = persons.copy()
persons2 = persons
print(persons1)
#is 身份运算符用于判断两个变量是否指向同一块内存
print(persons1 is persons)
print(persons2 is persons)

1.10.5清空列表

#clear 用于清空列表
persons.clear()
print(persons)

1.11列表推导式

multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)  # [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

  列表推导式在有些情况下超赞,特别是当你需要使用for循环来生成一个新列表。举个例子,你通常会这样做:

squared = []
for x in range(10):
    squared.append(x**2)

  你可以使用列表推导式来简化它,就像这样:

squared = [x**2 for x in range(10)]

1.12补充:交换两个变量的值

a = 12
b = 15
a, b = b, a
print(a, b)  # 15 12

1.13项目中列表的使用场景

# 多维列表(嵌套列表)
# [[姓名,年龄,工资],[姓名,年龄,工资],[姓名,年龄,工资],[姓名,年龄,工资]]
# 字符串:"姓名,年龄,工资"例如: "张三,30,2000"
# str = "张三,30,2000"
# l = str.split(",")
# print(l)
emp_list = []
while True:
    info = input("请输入员工信息:")
    if info == "":
        print("程序结束")
        break
    info_list = info.split(",")
    if len(info_list) != 3:
        print("输入格式不正确,请重新输入")
        continue
    emp_list.append(info_list)
    # print(emp_list)

    for emp in emp_list:
        print("{n},年龄:{a},工资:{s}".format(n=emp[0],a=emp[1],s=emp[2]))

列表的应用场景:在实际开发中,列表存储相同类型的数据,通过迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作。

posted @ 2019-05-12 09:46  博小园  阅读(222)  评论(0编辑  收藏  举报
回到顶部