ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python基础 04----列表

2020-12-27 23:05:17  阅读:179  来源: 互联网

标签:index 04 Python 列表 ---- 使用 print 拷贝 copy


文章目录

列表的使用

格式为 [元素1, 元素2, 元素3, …]

# 多个数据需要按照一定顺序要保存的时候,可以考虑用列表

# [] 表示一个列表
names = ['张三', '李四', '王五']
# 使用list 内置类  list(可迭代对象)
# 例如
# a = list(('张三', '李四', '王五'))
# print(a)

# 和字符串一样,可以使用下标来获取列表里面的元素
# 可以使用下标来修改 列表里面的元素
# 列表是可修改的
print(names[2])
names[2] = 'jack'
print(names[2])

# 使用下标来进行切片
print(names[1:2])

列表的增删改查

列表的操作,有序 可变的
增加 删除 修改 查询
增删改查

append 把新元素添加到列表的末尾

hero = ['李白', '韩信', '后裔', '李元芳']

# 添加元素的方法
# append insert extend
# append 在列表的最后面追加一个数据
hero.append('赵云')
print(hero)

insert 在指定位置 index前插入元素object

# insert(index, object) 需要两个参数
# index 表示下标,在那个位置插入数据
# object 表示插入的数据
hero.insert(2, '王昭君')
print(hero)

extend 将另一个列表逐一添加到列表中

# extend(iterable) 需要一个可迭代对象
# a.extend(b) 把b添加到a里面  b不变
a = ['马克菠萝', '狄仁杰']
hero.extend(a)
print(hero)
print(a)

删除数据的方法 pop remove clear

masters = ['王昭君', '妲己', '小乔', '貂蝉', '西施']

# 删除 修改 查询

# 删除数据的方法 pop remove clear

# pop 默认会删除列表的最后一个数据,并且返回数据
# pop(index) 传入索引 index 用来删除指定位置上的数据
# x = masters.pop(2)
# print(x)
# print(masters)

# remove  如果数据在列表中不存在 会报错
masters.remove('王昭君')
print(masters)

# clear 用来清空一个列表
masters.clear()
print(masters)

# 使用 del 也可以删除

tanks = ['亚瑟', '程咬金', '盾山', '张飞', '廉颇','廉颇']
# 查询相关的方法  index  元素不存在报错
print(tanks.index('盾山'))
# print(tanks.index('庄周'))
print(tanks.count('廉颇'))

# in 运算符

print('庄周' in tanks)

# 修改元素
# 使用下标直接修改列表的元素

排序(sort, reverse)

nums = [6, 5, 8, 7, 3, 1, 2, 4]

# 排序和反转
# 调用列表的sort方法直接进行排序
# 直接对列表进行排序
# nums.sort()
nums.sort(reverse=True)  # 反转
print(nums)

# sorted 不对原有列表进行改变,生成一个新的原有数据
a = sorted(nums)
print(a)

# 使用内置函数 reverse
name = ['李四', '王五', '张三']
name.reverse()
print(name)
# 使用切片[::-1]
c = name[::-1]
print(c)

列表的遍历

使用while/for in

# 将所有的数据访问一边 遍历针对的是 可迭代对象

# while / for in
killers = ['李白', '兰陵王', '韩信', '孙悟空', '赵云']

# for...in 循环是不断的调用迭代器 next查找下一个数据
for k in killers:
    print(k)

i = 0
while i < len(killers):
    print(killers[i])
    i += 1

列表的嵌套

关键: 操作嵌套列表,只要把要操作的元素的下标当作变量名来使用即可

import random

teachers = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
rooms = [[], [], []]
for teacher in teachers:
    room = random.choice(rooms)
    room.append(teacher)
print(rooms)

列表的推导式

关键点:使用简单的语法创建列表

# 使用简单的语法创建列表
# nums = [i for i in range(10)]
# print(nums)
#
# # 取所有的偶数
# x = [i for i in range(10) if i % 2 == 0]
# print(x)

# points = [(x,y) for x in range(10) for y in range(10)]
# print(points)
# 生成1到100的数字
m = [i for i in range(1, 101)]
n = [m[j: j + 3] for j in range(0, 100,3)]
print(m)
print(n)

列表的复制

列表里的copy方法

本质上是将原来的列表进行复制,变成新的列表(浅复制),修改新列表的数据并不会影响到原来的数据

import copy

x = [100, 200, 300]
y = x  # x赋值给y,这个时候x,y指向同一个内存地址

# 使用内存空间不一样的  使用 copy 内容一样,指向的空间不一样
z = x.copy()
print(z)
print(id(x))
'''
[100, 200, 300]
2516632011136
2516630953344
'''
print(id(z))

# 使用Python的方法
a = copy.copy(x)  # 相当于浅拷贝
b = x.copy()
print(a)
print(b)

copy模块的使用

浅拷贝:对一个对象的顶层拷贝,本质上是拷贝了引用,没有拷贝内容
浅拷贝只会拷贝最外层的对象,里面的数据不会拷贝,而是直接指向

import copy

words = ['hello', 'happy', 'hey', [100, 200, 300], 'hi']

# 浅拷贝  浅拷贝认为只拷贝了一层

words1 = words.copy()
print(words1)
# 深拷贝
words2 = copy.deepcopy(words)
print(words2)

深拷贝:深拷贝是对于一个对象所有层次的递归拷贝

标签:index,04,Python,列表,----,使用,print,拷贝,copy
来源: https://blog.csdn.net/weixin_44657575/article/details/111827289

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有