python列表

python列表–对应c语言中的数组

由一系列按特定顺序排列的元素组成,其中的元素之间可以没 有任何关系。

表示方法:

在Python中,用方括号[ ] 表示列表,并用逗号分隔其中的元素。下面是一个简单的列表示例,

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

如何访问列表元素:

列表是有序集合,因此要访问列表的任意元素,只需将该元素的位置( 索引 )告诉 Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在方括号内

bicycles[0]  #trek
bicycles[1]  #cannondale
bicycles[2].title	#Redline

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1 ,可让 Python返回最后一个列表元素:

bicycles[-1]	#redline

这种约定也适用于其他负数索引。例如,索引-2 返回倒数第 二个列表元素,索引-3 返回倒数第三个列表元素,依此类推。

使用列表元素

可以像使用其他变量一样使用列表中的各个值。

bicycles = ['trek', 'cannondale', 'redline'] 
message = f"My first bicycle was a {bicycles[0].title()}."
print(message) 
#输出:My first bicycle was a Trek.

修改、添加和删除元素

创建的大多数列表将是动态的,这意味着列表创建后,将随着程序的运行增删元素。

修改

修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要 修改的元素的索引,再指定该元素的新值。

motorcycles = ['honda', 'yamaha', 'suzuki'] 
print(motorcycles) 
motorcycles[0] = 'ducati' 
print(motorcycles) 
#输出:
['honda', 'yamaha', 'suzuki'] 
['ducati', 'yamaha', 'suzuki'] 

​ 由此可以修改任意列表元素的值

添加

Python提供了多种在既有列表中添加 新数据的方式

1.数组名.append()

方法append() 将元素’ducati’ 添加到列表末尾,而不影响列表中的其他所有元素,方法append() 让动态地创建列表易如反掌

 motorcycles.append('ducati') 
#你可以先创建一个空列表,再使用一系列函数调用append() 来添加元素。
motorcycles = [] 
 
motorcycles.append('honda') 
motorcycles.append('yamaha') 
motorcycles.append('suzuki') 
 
print(motorcycles) 
#这种创建列表的方式极其常见,因为经常要等程序运行后,你才知道用户要在程序中存储哪些数据。为控制用户,可首先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的每个新值附加到列表中。
2.数组名.insert()

name.insert(位序,‘内容’)

可在列表的任何位置添加新元素。为此,你需要指定新元素的 索引和值

 motorcycles = ['honda', 'yamaha', 'suzuki'] 
 motorcycles.insert(0, 'ducati') 
 print(motorcycles) 
#在这个示例中,值'ducati' 被插入到了列表开头。方法insert() 在索引0 处添加空间,并将值'ducati' 存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置
#输出:['ducati', 'honda', 'yamaha', 'suzuki'] 

删除

需要从列表中删除一个或多个元素,你可以根据位置或值来删除列表中的元素

1.del语句

如果知道要删除的元素在列表中的位置,可使用del 语句。

 motorcycles = ['honda', 'yamaha', 'suzuki'] 
  print(motorcycles) 
  del motorcycles[0] 
  print(motorcycles)
#输出:
['honda', 'yamaha', 'suzuki'] 
['yamaha', 'suzuki']
2.数组名.pop()

方法pop() 删除列表末尾的元素,并让你能够接着使用它

术语 弹出 (pop)源自 这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素

bikes=['fenhuang','sifei','haoi','aihai']
print(bikes)
del bikes[0]
poped_bike = bikes.pop()
print(bikes)
print(poped_bike)
#输出:
['fenhuang', 'sifei', 'haoi', 'aihai']
['sifei', 'haoi']
aihai

事实上,可以使用pop() 来删除列表中任意位置的元素,只需在圆括号中指定要删 除元素的索引即可。被弹出的元素不再在列表中

motorcycles = ['honda', 'yamaha', 'suzuki']
first_motor = motorcycles.pop(0)
print(first_motor)
print(motorcycles)
#输出:
honda
['yamaha', 'suzuki']
3.如何选用del语句或是pop方法

确定该使用del 语句还是pop() 方法,下面是一个简单的判断标准:如果 你要从列表中删除一个元素,且不再以任何方式使用它,就使用del 语句;如果你 要在删除元素后还能继续使用它,就使用方法pop() 。

4.根据值删除元素

有时候,你不知道要从列表中删除的值所处的位置。如果只知道要删除的元素的 值,可使用方法remove() 。remove方法没有返回值

数组名.remove()

motorcycles = ['honda', 'yamaha', 'suzuki','honda']
motorcycles.remove('honda')
print(motorcycles)
#输出
['yamaha', 'suzuki', 'honda']

推荐以下方法

motorcycles = ['honda', 'yamaha', 'suzuki','honda']
removed_motorcycle='honda'
motorcycles.remove(removed_motorcycle)
print(motorcycles)
#输出
['yamaha', 'suzuki', 'honda']
  • 注意

    方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来确保将每个值都删除。这将在第7章中介绍。

组织列表

有时候希望保留列表元素最初的排列顺序,而有时候又需要调整 排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用。

1.表列名.sorted()

方法sort() 让你能够较为轻松地对列表进行排序。默认按字母表1-9.a-Z顺序排列。逆序时需要给方法传参reverse=True

cars = ['bmw', 'audi', 'toyota', 'subaru'] 
cars.sort() 
print(cars) 
#输出:['audi', 'bmw', 'subaru', 'toyota'] 
cars.sort(reverse=True) 
print(cars) 
#输出:['toyota', 'subaru', 'bmw', 'audi']
  • 方法sort() 永久性地修改列表元素的排列顺序。现在,汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序

2.sorted(表列名)

方法sorted() 可保留列表元素原来的排列顺序,同时以特定的顺序呈现它们

motorcycles = [1,4,3,5,2]
sorted_motore = sorted(motorcycles)
print(motorcycles)
#[1, 4, 3, 5, 2]
print(sorted_motore)
#[1, 2, 3, 4, 5]
print(sorted(motorcycles))
#[1, 2, 3, 4, 5]
print(sorted(motorcycles,reverse=True))
#[5, 4, 3, 2, 1]
print(motorcycles)
#[1, 4, 3, 5, 2]

3.反转列表元素

​ 表列名.reverse()

可轻松地按相反的顺序排列其中的汽车

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
  • 方法reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列 顺序,只需对列表再次调用reverse() 即可。

4.确定列表的长度

len(列表名)
可快速获悉列表的长度

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

索引错误

​ > 索引越界 即Python在指定索引处找不到元素

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars[4]  #error
cars[-5] #error
#只有当列表没有元素时 car[-1],-1的索引才会错误
  • 注意  发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。 列表可能与你以为的截然不同,在程序对其进行了动态处理时尤其如此。通过 查看列表或其包含的元素数,可帮助你找出这种逻辑错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值