Python(2)——列表和元组

列表简介

用方括号表示([])列表,并用逗号分隔其中的元素

bicycles=['trek','cannondale','redline','specialized']
print(bicyle)

执行结果:['trek','cannondale','redline','specialized']

一、访问列表元素

知道元素的索引后可以直接访问列表中的任意元素

bicycles=['trek','cannondale','redline','specialized']
print(bicyles[0])

执行结果:trek

【注意】

  • 索引从0开始计算
  • 访问最后一个元素可以用索引-1,倒数第二用-2....如此类推,但是不能超出列表长度
bicycles=['trek','cannondale','redline','specialized']
print(f"{bicyles[1]} {bicyles[-1]}")

执行结果:cannondale specialized

二、修改、添加和删除元素

1)修改列表元素——xxx[元素位置]

motorcycles=['honda','yamaha','suzuki']
motorcycles[0]='ducati'
print(motorcycles)

执行结果:['ducati','yamaha','suzuki']

2)添加元素

1.在列表末尾添加元素——xxx.append(添加元素)

motorcycles=['honda','yamaha','suzuki']
motorcycles.append('ducati')
print(motorcycles)

执行结果:['honda','yamaha','suzuki','ducati']

2.在列表中插入元素——xxx.insert(插入位置,插入元素)

motorcycles=['honda','yamaha','suzuki']
motorcycles.insert(0,'ducati')
print(motorcycles)

执行结果:['ducati','honda','yamaha','suzuki']

3.在列表中删除元素——del xxx和xxx.pop(不填或元素位置)和remove(指定元素)

①del——删除后无法再访问该元素

motorcycles=['honda','yamaha','suzuki']
del motorcycles[0]
print(motorcycles)

执行结果:['yamaha','suzuki']

②pop()——删除这个元素的同时会返回该元素,之后无法在列表中再访问

#1.不指定要删除的元素,删除列表中最后一个元素并返回
motorcycles=['honda','yamaha','suzuki']
poped_motorcycles=motorcycles.pop()
print(f"{poped_motorcycles},{motorcycles}")

执行结果:suzuki,['honda','yamaha']

#2.指定要删除的元素,删除列表指定元素并返回
motorcycles=['honda','yamaha','suzuki']
poped_motorcycles=motorcycles.pop(1)
print(f"{poped_motorcycles},{motorcycles}")

执行结果:yamaha,['honda','suzuki']

③remove()——不知道要删除元素的位置,但知道他的值

motorcycles=['honda','yamaha','suzuki','ducati']
motorcycles.remove('ducati')
print(motorcycles)

执行结果:['honda','yamaha','suzuki']

【注意】remove()只删除第一个指定的值,如果列表中存在多个相同的值,应用循环来确保每个值都被删除

三、对列表进行排列

1)xxx.sort()——对列表进行永久排序,会改变原列表

cars=['bmw','audi','toyota','subaru']
cars.sort()
print(cars)

执行结果:[‘audi','bmw','subaru','toyota']

添加参数reverse=True实现顺序反转

cars=['bmw','audi','toyota','subaru']
cars.sort(reverse=True)
print(cars)

执行结果:['toyota','subaru','bmw',‘audi']

2)sorted(xxx)——对列表进行临时排序,返回一个临时序列,不会改变原列表

cars=['bmw','audi','toyota','subaru']
print(sorted(cars))
print(cars)

执行结果:

[‘audi','bmw','subaru','toyota']

['bmw','audi','toyota','subaru']

添加参数reverse=True实现顺序反转

cars=['bmw','audi','toyota','subaru']
print(sorted(cars,reverse=True))
print(cars)

执行结果:

['toyota','subaru','bmw',‘audi']

['bmw','audi','toyota','subaru']

3)xxx.reverse()——反转列表,会改变原列表

cars=['bmw','audi','toyota','subaru']
cars.reverse()
print(cars)

执行结果:['subaru','toyota','audi','bmw']

4)len(xxx)——得到列表长度

cars=['bmw','audi','toyota','subaru']
print(len(cars))

执行结果:4

四、遍历列表

使用for循环遍历列表

days=['Monday','Tuesday','Wensday','Thursday','Friday']
for day in days:
    print(day)
print("All days!")

执行结果:

Monday

Tuesday

Wensday

Thursday

Friday

All days!

注意:

  • Python使用缩进来进行划分代码块,如上述代码中第一个print进行了缩进,打印了五次天数;而第二个print没有缩进,说明是在for循环之外,只打印一次
  • for循环使用‘:’开始自己的代码块,并且代码块中至少要有一条语句

不必要的缩进

Python中会指出你不必要的缩进,如:

number=5
    print(number==5)
#会报错,因为进行了不必要的缩进

五、数值列表

1)rang()创建数值列表

1.利用range()创建连续数值列表

numbers=[]
#方法1,使用range(a,b)
for value in range(0,6)
    numbers.append(value)

#方法2,使用range(a)
for value in range(6)
    numbers.append(value)

#方法3,list()可以将range()的结果直接转换为列表
numbers=list(range(0,6))

print(numbers)

执行结果都为:[0, 1, 2, 3, 4, 5]

2.利用range()创建不连续数值列表

#使用range(a,b,c),会根据c设置步长
numbers=list(range(1,6,2))

执行结果:[1, 3, 5]

2)列表解析

列表解析会相对来说比较复杂,如以下代码把for循环与创建新元素的代码合并成一行:

squares=[values**2 for value in range(1,11)]
print(squares)

执行结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3)对数字列表的简单统计

有几个专门处理数字列表的Python函数:

numbers=[values for values in range(1,11)]
print(numbers)
print(min(numbers))
print(max(numbers))
print(sum(numbers))

执行结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

1

10

55

3)切片

要创建切片,可以指定第一个元素和最后一个元素的索引(从0开始)。

names=['a','b','c','d','e','f']

"""方法1:指定第一个元素和最后一个元素"""
print(names[1:3])
#执行结果:['b', 'c']

"""方法2:不指定第一个元素,指定最后一个元素"""
print(names[:3])
#执行结果:['a', 'b', 'c']

"""方法3:指定第一个元素,不指定最后一个元素"""
print(names[1:])
#执行结果:['b', 'c', 'd', 'e' , 'f']

"""方法4:指定第一个元素和最后一个元素,指定步长"""
print(names[1:5:2])
#执行结果:['b', 'd']

4)复制列表

1.深度复制

深度复制会使两个变量同时指向同一个列表,其中一个变量进行操作都会影响其他变量。

names_01=['a','b','c','d','e','f']
names_02=names_01
print(names_01)
print(names_02)
names_02.pop()
print(names_01)
print(names_02)

执行结果:.

['a', 'b', 'c', 'd', 'e', 'f']

['a', 'b', 'c', 'd', 'e', 'f']

['a', 'b', 'c', 'd', 'e']

['a', 'b', 'c', 'd', 'e']

2.浅复制

浅复制会把一个列表的副本复制给另外一个变量,对列表进行操作不会互相影响

"""可以使用切片[:]进行复制副本"""
names_01=['a','b','c','d','e','f']
names_02=names_01[:]
print(names_01)
print(names_02)
names_02.pop()
print(names_01)
print(names_02)

执行结果:.

['a', 'b', 'c', 'd', 'e', 'f']

['a', 'b', 'c', 'd', 'e', 'f']

['a', 'b', 'c', 'd', 'e', 'f']

['a', 'b', 'c', 'd', 'e']

六、元组

Python将不能修改的值称为不可变的,而不可变的列表称为元组

1)定义元组

names_01=('a','b','c','d','e','f')
names_02=names_01[:]
print(names_01)
print(names_02)

执行结果:.

('a', 'b', 'c', 'd', 'e', 'f')

('a', 'b', 'c', 'd', 'e', 'f')

元组也可以像列表一样使用切片,但是元组的唯一特点就是不可改变元组的元素

2)修改元组的量

虽然不可以修改元组的元素,但是可以改变存储元组的变量(修改整个元组)

names=('a','b','c','d','e','f')
print(names)
names=(50,80,90)
print(names)

执行结果:.

('a', 'b', 'c', 'd', 'e', 'f)

(50, 80, 90).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值