01 零基础学习Python——列表、元组

本文详细介绍了Python中列表和元组的基本操作,包括创建、添加、删除、修改元素,查找元素,以及浅拷贝与深拷贝的区别,同时还涵盖了列表推导式和切片等高级用法。
摘要由CSDN通过智能技术生成

一、列表

1.创建列表
  • 创建普通列表
member1 = [1, 2, 3, 4]
  • 创建混合列表
member2 = ["a", 1, 12]
  • 创建空列表
member3 = []
2.向列表添加元素
  • append()函数向列表末尾添加一个元素
member1 = [1, 2, 3, 4]
member2 = ["a", 1, 12]
member1.append(member2)
print(member1)

[1, 2, 3, 4, ['a', 1, 12]]
  • extend()函数向列表末尾添加多个元素
member1 = [1, 2, 3, 4]
member2 = ["a", 1, 12]
member1.extend(member2)
print(member1)

[1, 2, 3, 4, 'a', 1, 12]
  • insert(n,xxx)函数向列表中第n个元素前插入一个元素
member1 = [1, 2, 3, 4]
member2 = ["a", 1, 12]
member1.insert(1,member2)
print(member1)

[1, ['a', 1, 12], 2, 3, 4]
3.从列表删除元素
  • remove()函数表示从列表中删除某个元素
member1 = [1, 2, 3, 4]
member1.remove(1)
print(member1)

[2, 3, 4]
  • del()函数也表示从列表中删除某个元素
member1 = [1, 2, 3, 4]
del member1[2]
print(member1)

[1, 2, 4]
  • pop()函数从列表中取出最后一个元素,pop(i) 则为弹出下标为i的元素
member1 = [1, 2, 3, 4]
member1.pop()
print(member1)

[1, 2, 3] 
  • 使用切片的方法,添加元素
member1 = [1, 2, 3, 4]
member1[len(member1):] = [5,6]
print(member1)

[1, 2, 3, 4, 5, 6]
4.修改列表中的元素
  • reverse() 将列表中元素倒序

  • sort() 将列表中元素从小到大排序

mem = [1, 2, 5, 4, 3, 6]
mem.sort(reverse=True)
print(mem)

[6, 5, 4, 3, 2, 1]
5.查找列表中的元素
  • count()函数可计算列表中相同元素个数
mem = [1, 2, 2, 4, 3, 2]
num = mem.count(2)
print(num)

3
  • index(value,star,stop) 函数可索引列表元素
mem = [1, 2, 2, 4, 3, 2]
num = mem.index(4)
print(num)

3
  • 补充,print中end的用法 print(‘’,end=‘’)

为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串,表示这个语句没结束。此外,print()是换行。

mar = [[1,2,3],
       [4,5,6],
       [7,8,9]]
for eac in mar:
    for ech in eac:
        print(ech,end=' ')
    print()
    
1 2 3 
4 5 6 
7 8 9 
  • 补充,多重嵌套容易写下的bug
A = [None]*3
for i in range(3):
       A[i] = [0] * 3
A[1][1] = 1
print(A)

[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
B = [[0]*3]*3
B1][1] = 1
print(B)

[[0, 1, 0], [0, 1, 0], [0, 1, 0]]

在这里插入图片描述

6.浅拷贝和深拷贝
  • 浅拷贝:只拷贝了对象,对象内的元素并不会发生拷贝
#方法一:copy函数

x = [1,2,3]
y = x.copy()
x[1] = 5
print(y)

[1, 2, 3]
#方法二:切片

x = [1,2,3]
y = x[:]
x[1] = 5
print(y)

[1, 2, 3]
  • 深拷贝:不仅拷贝对象,对象内的元素也会发生拷贝。多层嵌套需要用到深拷贝
import copy
x = [[1,2,3],[4,5,6],[7,8,9]]
y = copy.deepcopy(x)
x[1][1] = 0
print(x)
print(y)

[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
7.列表推导式
  • 表达式:[expression for target in iterable]
mar = [[1,2,3],
       [4,5,6],
       [7,8,9]]
x = [mar[i][i] for i in range(len(mar))]
print(x)

[1, 5, 9]
  • 带判断语句的列表推导式: [expression for target in iterable if condition]
word = ["Great","FishC","Brilliant","Excellent"]
fword = [w for w in word if w[0]=="F"]
print(fword)

['FishC']
  • 嵌套的列表推导式表示嵌套的循环:[expression for target1 in iterable1 for target2 in iterable2 …]
mar = [[1,2,3],[4,5,6],[8,9,10]]
fla = [col for row in mar for col in row]
print(fla)

[1, 2, 3, 4, 5, 6, 8, 9, 10]
8.切片

切片操作的基本表达式:object[start:end:step]

rhyme[ : : -1]      #原列表逆序

二、元组

由于和列表是近亲关系,所以元组和列表在实际使用上是非常相似的。但是在操作上,相较于列表的“增删改查”,元祖只有“查”

  • 创建元祖(括号可以没有,但逗号一定要有)

tuple = (1,2,3,4,5)

  • 查找
#count统计某元素个数
tuple = (1,2,3,4,5,2,3,8)
num = tuple.count(3)
print(num)

2
tuple = ("喜羊羊","懒洋洋","美羊羊","灰太狼","灰太狼")
_index = tuple.index("美羊羊")
print(_index)

2
  • 如何生成只有一个元素的元祖
tuple = (1,)
  • 打包和解包(适用所有序列类型),解包时所采用的变量数量需要和元组内的元素数量相同
t = (123,"FishC",3.14)
x,y,z = t
print("x=",x ," y=",y," z=",z)

x= 123  y= FishC  z= 3.14
#除非使用这种方式,用*表示完后面的元素
t = (123,'FishC',3.14)
x,*y = t
print("x=",x ," y=",y)

x= 123  y= ['FishC', 3.14]
  • 元组中的元素若指向可变的列表,则其是可变的
s = [1,2,3]
t = [4,5,6]
w = (s,t)
w[1][0] = 0
print(w)

([1, 2, 3], [0, 5, 6])
  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值