DAY2 python学习 列表

列表

一.列表基本概念

1.python中用方括号[ ]来表示列表,用逗号隔开元素
2.python与其他语言一样,第一个列表元素索引是从0开始而不是从1开始
3.特殊:python中用负数索引,来表示倒数第几个元素。例如,指定索引为-1返回列表最后一个元素

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

1.修改:指定列表名和索引号,对列表元素重新复制即可。

2.添加:
(1)末尾添加:对列表使用方法append()
例如:name.append(‘kk’)
注:编程时常常会新建一个空列表,然后使用该方法不断再往列表中添加元素。
(2)列表中添加元素:对列表使用方法insert()
例如:name.insert(0,‘kk’)
注意:使用该方法时,需要制定新元素的索引和值

3.删除:
(1)使用del语句(前提是已知元素在列表中的位置
例如:del name[0]
(2)使用方法pop()(若接下里仍要使用被删除元素时)
可直接使用来删除列表末尾元素;(就相当于栈中弹出栈顶元素,弹出后的元素仍可继续使用
例如:popped_name=name.pop() (默认弹出列表尾部的元素)
也可以弹出列表中任何位置处的元素,只需要在括号中指定要删除的元素的索引。
例如:popped_name=name.pop(1)
(3)使用方法remove()(删除指定值的列表元素)
例如:popped_name=name.remove('yu')

***注意:***
1.与pop()一样删除后的元素仍可继续使用;
2.方法remove()只删除第一个指定的值。若该值出现多次,需要用循环处理。

三.组织列表

1.使用 方法sort() 对列表进行 永久性排序
例如:name.sort()
向方法sort()传递参数 reverse=True,可对列表逆向排序
例如:name.sort(reverse=True) (注意此处True首字母要大写,否则会报错)

2.使用 函数sorted() 对列表进行 临时性排序
例如:sorted(name)
同样可向函数传递参数 reverse=True,逆向排序显示列表
例如:sorted(name,reverse=True)

3.使用 方法reverse() 对列表进行 反向打印
例如:name.reverse()
但只需再次对列表调用reverse()就可回复到原来的排列顺序

4.使用函数len()确定列表的长度
例如:len(name)

四.for循环遍历列表

例如:

names=['yu','zhang','zhu','liu']
for name in names
	print(name)

1.格式:for 变量 in 列表名:
意思是循环依次从列表中取出元素赋值给变量,然后对变量进行相应的操作。
2.注意循环体中的语句必须前面要有缩进,python中是根据缩进来判断代码行与前一个代码行的关系,这与C之类的语言用大括号表示不同。
3.for语句后一定要加冒号

五.创建数值列表

1.使用函数range()
使用该函数可以生成一系列的数字。
主要两种用法(源自文档注释):

"""
range(stop) -> range object
range(start, stop[, step]) -> range object
    
Return an object that produces a sequence of integers from start (inclusive)
to stop (exclusive) by step.  range(i, j) produces i, i+1, i+2, ..., j-1.
start defaults to 0, and stop is omitted!  range(4) produces 0, 1, 2, 3.
These are exactly the valid indices for a list of 4 elements.
When step is given, it specifies the increment (or decrement).
"""

例1:

for i in range(4):
	print(i)

输出结果为0,1,2,3
 
例2:

for value in range(1,5):
	print(value)

注意:
上述代码执行结果为1、2、3、4,并没有5。因为函数range()是让python从你指定的第一个值开始,并在到达你指定的第二个值后停止,所以会存在差一的情况。

2.使用函数list()将range()结果转换为数字列表
例如:

numbers=list(range(1,5))
print(numbers)

注意:
(1)将range()结果作为list()的参数即可直接将其转换为列表;
(2)使用函数range()时可以指定步长
例如:

numbers=list(range(1,52))
print(numbers)

则输出结果为1,3

3.数字列表常用的统计函数

numbers=list(range(1,5))
min(numbers)  #最小值,结果为1
max(numbers)  #最大值,结果为4
sum(numbers)  #求和,结果为10

4.列表解析
功能是将for循环和创建新元素的代码合并成一行,并自动附加新元素。
例如:

squares=[value**2 for value in range(1,5)]  
#使用这种语法需先指定一个列表名,然后加一对括号。括号里先定义一个表达式,
#即图中的value**2的乘方运算,再写一个for循环对变量value进行赋值
print(squars)

注意:这里面的for循环后不需要加冒号。

六.列表的部分使用

1.切片(即指列表的部分元素)
基本格式:列表名[开始索引: 终止索引: 步长]

  • 开始索引:表示是第一个元素对象,正索引位置默认为0;负索引位置默认为 -len(列表名)
  • 终止索引:表示是最后一个元素对象,正索引位置默认为 len(consequence)-1;负索引位置默认为 -1。
  • 步长:表示取值的步长,默认为1,步长值不能为0。
     

例如:

names=['yu','zhang','zhu','liu']
print(names[0:2])
#结果为['yu','zhang']

注意:
(1)格式:列表名[开始元素的索引号:终止元素的索引号]
同range()函数一样,只能到达你指定的终止元素的前一个元素为止。
(2)若未指定开始元素的索引,则从头开始

names=['yu','zhang','zhu','liu']
print(names[:2])
#结果为['yu','zhang']

(3)若未指定终止元素的索引,则从开始元素的索引处到列表尾

names=['yu','zhang','zhu','liu']
print(names[1:])
#结果为['zhang','zhu','liu']

(4)若想输出最后几个列表元素,可以:

names=['yu','zhang','zhu','liu']
print(names[-2])
#结果为['zhu','liu']

(5)遍历切片同正常遍历列表

2.复制列表
要复制列表可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引,即([ : ])

names=['yu','zhang','zhu','liu']
xingming=names[:]
print(xingming)
#结果为['yu','zhang','zhu','liu']

注意:不能单纯的将变量names赋值给变量xingming,这样做最终是让两个变量指向同一个列表,而不能得到两个新的列表。

names=['yu','zhang','zhu','liu']
xingming=names  #这样无法得到新的列表,只是让两个变量指向同一个列表

七.元组

1.概念:python中将不能修改的值成为不可变的,而不可变的列表被称为元组。
2.定义元组:使用圆括号而不是方括号来标识

names=('yu','zhang','zhu','liu')

注意:若尝试对元组元素进行修改,则会报错

names=('yu','zhang','zhu','liu')
names[0]='ma'  #这条语句会报错

3.遍历元组:同遍历列表
4.虽然不能修改元组元素,但可以对元组变量进行赋值

names=('yu','zhang','zhu','liu')
names=('hua','lei','gui','ze')  #这条语句不会被报错,因为对元组赋值是合法的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值