Python学习记录(基础篇:第二部分——列表)

列表的定义

列表由一系列按特定顺序排列的元素组成。可以将任意东西加入列表中,其中的元素之间可以无任何关系。Python是弱类型语言。
一般给列表取复数形式的名字,如names。
用方括号"[]"来表示列表,用逗号分隔其中元素。如:names=['liu','her','his']

访问列表

列表是有序集合。要访问列表元素,可以指出列表的名称,再指出元素的索引,并将其放在方括号内。
而当你获取列表元素时,Python只返回该元素。
如:names=['liu','her','his'] print(names[0])#输出:liu
Python为访问最后一个列表元素提供了一种特殊语法,将索引指定为-1,可让Python返回最后一个列表元素。其也代表从列表的末尾开始计算索引。
如:names=['liu','her','his'] print(names[-1])#输出:his
索引-2返回倒数第二个元素,可以此类推。

使用列表的值

将列表中的元素存入变量进行使用。

修改列表元素

我们要把第二个元素改为’hero’.

`names=['liu','her','his']
print(names[-2])
names[-2]='hero'
print(names[-2])
#输出:her
	  hero

通过索引确定位置,重新赋值,修改任意位置的值。

添加元素

  1. 在列表末尾添加:使用方法append()。names=[] names.append('liu') print(names) #输出:['liu']

  2. 在列表中插入:使用方法insert()可在列表的任何位置插入元素。names=[] names.insert(0,'liu') print(names) #输出:['liu']
    在这里,方法insert()在索引0处添加空间,并将值’liu’存储到该处。这种操作会对后面的所有既有元素都右移一个位置。就像别人插队,对前面的人不影响,只影响后面的人。

删除元素

1.使用del语句删除已知列表元素位置的元素。

`names=['liu','her','his']
del names[0]`
print(names)#输出:['her','his']

我们删除了第一个元素,这个操作是永久性的。
2.使用方法pop()。方法pop()可删除列表末尾的元素,并可以接着使用它.

names=['liu','her','his']
op_name=names.pop()
print(op_name)
print(names)
#输出:liu
      ['liu','her']

列表就像一个栈,删除列表末尾的元素相当于弹出栈顶元素。
使用方法pop()也可以删除列表中任何位置的元素,只需要在括号中指出要删除的元素索引。

names=['liu','her']
op=names.pop(-2)

我们弹出了列表的第一个元素。
3.根据值删除。使用方法remove()。

names=['liu','her','his']
name='liu'
names.remove(name)
print(names)
#输出:['her','his']

在这里,将’liu’赋值给变量name,在列表names中删除’liu’的元素,打印出删除后的列表。我们也可以输出我们删除的元素。

组织列表

  1. sort()方法对列表进行永久性排序。names=['liu','his'] names.sort() print(names)#输出:['his','liu']方法sort()按字母顺序永久性地修改了列表元素排列。如果想要按与字母顺序相反的顺序排列,需要改为sort(reverse=True)

  2. sorted()函数对列表进行临时性排序。

names=['liu','her','his']
print(names)
print(sorted(names))
print(names)
#输出:['liu','her','his']
		['her','his','liu']
		['liu','her','his']

第一行输出原始顺序列表,第二行输出临时性列表顺序,第三行输出原始顺序列表。

  1. 使用方法reverse()倒着打印列表.
names=['liu','her','his']
names.reverse()
print(names)
#输出:['his','her','liu']

此处,是反转列表元素的排列顺序。如果想恢复,只需再次调用该方法即可。

4.使用函数len()可快速获悉列表长度。

names=['liu','her','his']
print(len(names))
#输出:4

遍历整个列表

需要对列表中每个元素执行相同的操作时,都可以使用for循环。

names=['liu','her','his']
for name in names:
	print(name)
#输出:liu
	  her
	  his

for循环让Python从列表中依次取出一个元素,并将其存储至变量name中,进行输出。
对列表中的每一个元素,都将执行相同的步骤,无论列表中有多少元素。
对于存储列表中每个值的临时变量,可以指定任何名称。

创建数值列表

  1. 函数range():该函数可以生成一些列的数字。
for value in range(1,5):
	print(value)
#输出:1
	  2
	  3
	  4

函数range()让Python从指定的第一个数开始数,并在到达你指定的第二个值后停止,因此输出不包含5.

  1. 创建数字列表:使用函数list()将range()的结果直接转换成列表。
numbers=list(range(1,5,1))
print(numbers)
#输出:[1,2,3,4]

在这里,有了第三个参数1,代指步长为1.
可以直接使用min(),max(),sum()求最小值、最大值和总和。

列表解析

  1. 定义:列表解析将for循环和创建新元素的代码合成一行,并自动附加新元素。

  2. 实例

ns=[n**3 for n in range(1,4)]
print(ns)
#输出:[1,8,27]

首先要指定一个描述性的列表名,如ns。然后,指定一个左方括号,定义一个表达式,用于生成要存储到列表中的值。接着,编写for循环,用于给表达式提供值。最后加上右方括号。

使用部分列表

  1. 使用切片

切片,可指定要使用的第一个元素和最后一个元素的索引。Python在到达指定的第二个索引前面的元素后停止。

cars=['audi','aw','ker','lop']
print(cars[:3]
#输出:['audi','aw','ker']

输出前三个元素,指定索引0~3.这里,开头没有指定,Python将自动从表的开头开始。末尾没有指定,Python将自动在列表末尾终止。

  1. 遍历切片
cars=['audi','aw','ker','lop']
for car in cars[:3]:
print(car)
#输出:audi
	aw
	ker

遍历了前三个元素。

  1. 复制列表
    创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引,即[:].
my_foods=['vegetable','noodless','hotdog','hamburg']
her_foods=my_foods[:]
my_foods.append('my')
her_foods.append('her')
print(my_foods)
print(her_fodds)
#输出:['vegetable','noodless','hotdog','hamburg','my']
	  ['vegetable','noodless','hotdog','hamburg','her']

我们将包含my_foods列表所有元素的切片赋值给了her_foods,这样,两个列表互不干涉。如果简单的将my_foods列表赋值给her_foods,那么,对于一个列表的改动,将会对另一个列表产生影响。

元组

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

  1. 定义元组:元组和列表的区别在于用圆括号标识。
code=(4,5,6)
print(code[0])
#输出:4

在这里,定义了元组code,接着打印该元组的第一个元素4.
修改元组元素是被禁止的,会报错。

  1. 遍历元组:与遍历列表一样,使用for循环。
  2. 修改元组变量。
    我们无法直接修改元组的元素,但可以通过给存储元组的变量赋值来间接修改。
codes=(4,5,6)
for code in codes:
	print(code)
print('\n')
codes(7,8,9)
for code in codes:
	print(code)
输出:4
	 5
	 6
	
	 7
	 8
	 9

在这里,首先定义了一个元组codes,并打印所有元素。然后将一个新元组存储到变量codes中,对前面的codes进行了覆盖。这次,不会报错。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵海之森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值