自学python 进击之路 - 列表

85 阅读4分钟

本人是个前端的无名小卒,为了自己的更好的机遇,努力自学python,望有志同道合的大佬可以交流一下

src=http___5b0988e595225.cdn.sohucs.com_images_20190916_32ce26032b124c3cb145a4231627373d.jpeg&refer=http___5b0988e595225.cdn.sohucs.jpg 这文章的讲述列表就像与 JavaScript里面的数组一样,当学过js同撩们学习这个模块时就是时曾相识一样

1.1 列表的定义和基本使用

# 列表 是python 中的一种数据类型,可以存放多个数据,列表中的过螃蟹可以任意类型的
# 列表 list ,定义使用[] 定义

# 定义列表
my_list = []
print(my_list, type(my_list))  # [] <class 'list'>
my_list1 = list()
print(my_list1, type(my_list1))  #  [] <class 'list'>


# 定义带数据的列表。数据元素之间使用逗号隔开
my_list2 = [1, 3.14, True, 'itsaac']
print(my_list2, type(my_list2))   # [1, 3.14, True, 'itsaac'] <class 'list'>

# 求列表中数据元素的个数,即列表的长度
num = len(my_list2)
print(num)  # 4

# 列表支持下标和片操作
print(my_list2[1])  # 3.14
print(my_list2[-1])  # itsaac
print(my_list2[1:3])  # [3.14, True]



# 下标操作和字符串中的不同的是:字符串不能使用下标修改其中的数据,但是可以使用下标修改列表的中的数据
my_list2[0] = 18
print(my_list2)   # [18, 3.14, True, 'itsaac']

my_list2[-1] = 'hello'
print(my_list2)  # [18, 3.14, True, 'hello']

my_list2[0] = 'python'
print(my_list2)  # ['python', 3.14, True, 'hello']

1.2 遍历

my_str = ['郭德纲', '于谦', '小岳岳', '孙越']

for i in my_str:   # i 就是列表中的每一个数据
    print(i)

print('*' * 30)

j = 0  # j 表示下标
while j < len(my_str):
    print(my_str[j])
    j += 1

Snipaste_2021-05-15_14-45-31.png

1.3 向列表中添加数据

# 向列表添加数据的方法,都是直接在与原列表中进行添加的, 不会返回新的列表
my_list = ['郭德纲', '于谦', '小岳岳', '孙越']
print(my_list)
# 列表 .append(数据) 向列表的尾部追加数据
my_list.append('aa')
print(my_list)  # ['郭德纲', '于谦', '小岳岳', '孙越', 'aa']

result = my_list.append(12)  # 不要这样书写
# print(result)  # none  关键字,表示空
print(my_list)  # ['郭德纲', '于谦', '小岳岳', '孙越', 'aa', 12]


# 列表.insert(下标,数据) 在指定的下标位置进行添加数据
my_list.insert(0, 'itaac')
print(my_list)  # ['itaac', '郭德纲', '于谦', '小岳岳', '孙越', 'aa', 12]
# print(my_list.insert(5, 3.14))  不能这样书写,none

# 列表.extend(可迭代对像) # str  列表 , 会将可迭代对象中的数据逐个添加到原创表的末尾
my_list.extend('hel')
print(my_list)  # ['itaac', '郭德纲', '于谦', '小岳岳', '孙越', 'aa', 12, 'h', 'e', 'l']

my_list.extend([1, 'python', 3])
print(my_list)   # ['itaac', '郭德纲', '于谦', '小岳岳', '孙越', 'aa', 12, 'h', 'e', 'l', 1, 'python', 3]

1.4 列表中的列表数据查询操作

my_list = [1, 3.14, 'itsaac', False]
# index()  根据数据值,查找元素所在的下标,找到返回元素的下标, 没有找到,程序报错
# 列表中没有find 方法, 只有index() 方法
# 查找3.14 在列表下标
num = my_list.index(3.14)
print(num)  # 1

# num1 = my_list.index(100)  # 程序报错,因为数据不存

# count() 统计出现的次数
num3 = my_list.count(1)  # 1
print(num3)

# in/ not in 判断是否存在 ,存在是True, 不存在是False, 一般和if 结合使用
num4 = 3.14 in my_list
print(num4)  # True

num4 = 3.14 not in my_list
print(num4)  # False

1.5 列表中的删除操作

my_list = [1, 2, 3, 4, 5, 6, 7]
# 1.根据元素的数据值删除 remove(数据值),直接原列表中的数据
my_list.remove(4)
print(my_list)  # [1, 2, 3, 5, 6, 7]

# 2.根据下标删除
# 2.1 pop(下标) 默认删除最后一个数据,返回删除的内容
num = my_list.pop()
print(num)   # 删除了最后一个 7
print(my_list)  # [1, 2, 3, 5, 6]

num = my_list.pop(2)
print(num)  # 删除下标为2的数据即3
print(my_list)  # [1, 2, 5, 6]

# 2.2 del 列表【下标】
del my_list[1]
print(my_list)   # 删除下标为1的数据 2

1.6 列表的排序与逆置

# 想要对列表中的数据进行排序,前提是列表中的数据类型是一样的
my_list = [1, 5, 3, 7, 9, 6]

# 列表.sort () 直接在原创列表中进行排序
# my_list.sort()   # [1, 3, 5, 6, 7, 9]  默认是从小到大的排序 ,即升序
# my_list.sort(reverse=True)  # [9, 7, 6, 5, 3, 1]  通过reverser = True , 从大到小排序
print(my_list)

# 补充:sorted(列表) 排序 ,不会在原则表中进行排序,会得到一个新的列表
my_list1 = sorted(my_list)
my_list2 = sorted(my_list, reverse=True)
print(my_list)
print(my_list1)  # [1, 3, 5, 6, 7, 9]
print(my_list2)  # [9, 7, 6, 5, 3, 1]


my_list3 = ['a', 'b', 'c', 'd', 'e']
# 逆置
my_list4 = my_list3[::-1]  # 得到一个新的列表
print(my_list3)   # ['a', 'b', 'c', 'd', 'e']
print(my_list4)   # ['e', 'd', 'c', 'b', 'a']


# 在原列表直接逆置 列表.reverse()
my_list3.reverse()
print(my_list3)   # ['e', 'd', 'c', 'b', 'a']

1.7列表嵌套

school_names = [['北京大学', '清华大学'], ['南开大学', '天津大学', '天津师范大学'], ['山东大学', '中国海洋大学']]
print(school_names[1])  # ['南开大学', '天津大学', '天津师范大学']
print(school_names[1][1])  # 天津大学
print(school_names[1][1][1])  # 津


for schools in school_names:
    for name in schools:
        print(name)